Session变量在ASP.Net页的Parallel.For循环内是否是线程安全的

苏尼尔

在下面的代码中更改会话变量(即Session [“ Progress”])是否安全?

这段代码是ASP.Net页面背后代码的一部分。

并行运行循环时,如果两个迭代都更改了相同的会话变量,则两个迭代可能会同时运行并导致问题。

   public void LongOperation()
    {
        Parallel.For(0, totalMembers,(i,loopState) =>
        {
            Thread.Sleep(2000);//wait some time to simulate processing
            progress++;
            Session["Progress"] = progress;//IS THIS THREAD-SAFE?
        } 
       ); 
   }
亚里士多德

这不是线程安全的,但是可以跨不同打开的页面更改会话

因此,在某些情况下,如果您致电它是安全的。

如果您仅一次从页面调用它,那么在不同页面上都是安全的。原因是会话从页面加载开始到结束完全锁定了会话。

一些类似的答案可以证明这一点。

在共享同一会话上处理另一个Web应用程序时,Web应用程序被阻止
ASP.NET Web窗体是否阻止双击提交?
尝试使Web方法异步

如果您在同一页面不同线程中多次调用它,则需要同步

笔记

  • 如果此循环需要很长时间才能完成,那么所有用户都将等待该计算,而不仅仅是会话用户。所有用户都将被会话锁定锁定。如果有太多用户致电,那么所有用户在一起将等待很长时间。因此,您可能需要在调度程序任务上进行此计算。
  • 如果处理循环内数据的时间小于循环创建和同步线程所花费的时间,那么并行循环比简单循环要花费更多的时间。因此,您需要在此处计算简单循环和并行循环的速度。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

会话变量在ASP.Net页的Parallel.For循环内是否是线程安全的

来自分类Dev

是否可以在asp.net页中设置localStorage或Session变量,然后在另一页上的javascript中读取它?

来自分类Dev

Python:在循环内更改迭代变量是否安全?

来自分类Dev

C#Parallel.foreach-使变量线程安全

来自分类Dev

ASP.NET页中变量的范围

来自分类Dev

如何使用Session变量ASP.NET C#

来自分类Dev

修改静态变量是否线程安全?

来自分类Dev

ASP.NET MVC Outputcache“线程安全”

来自分类Dev

从主线程更改线程的变量值是否安全?

来自分类Dev

从主线程更改线程的变量值是否安全?

来自分类Dev

Julia线程中用于循环线程的变量是否在本地?

来自分类Dev

独立的ASP.NET页

来自分类Dev

在asp.net中只有一个线程处理一页吗?

来自分类Dev

Session变量上的ASP.NET三元运算符

来自分类Dev

如何通过静态变量访问ASP.NET Core中的Session?

来自分类Dev

Session变量上的ASP.NET三元运算符

来自分类Dev

没有cookie和session的asp.net mvc全局变量[“”]

来自分类Dev

ASP.Net Session.Timeout-StateServer和Programmatic Session.Timeout是否足够好?

来自分类Dev

Hadoop Reducer类的成员变量是否是线程安全的?

来自分类Dev

Hadoop Reducer类的成员变量是否是线程安全的?

来自分类Dev

ASP.NET MVC _layout.cshtml是否与Webforms母版页相似?

来自分类Dev

Asp.Net Web表单的母版页是否有其他选择?

来自分类Dev

静态HttpClient线程在ASP.net HttpRequest上安全

来自分类Dev

ASP.NET C#外部SDK不是线程安全的

来自分类Dev

ASP.NET起始页始终加载母版页

来自分类Dev

PHP for $ _SESSION变量的循环迭代

来自分类Dev

在嵌套循环中重用相同的未使用变量是否安全?

来自分类Dev

在来自母版页控件的内容页中的变量后面的asp.net代码上设置jQuery选择器

来自分类Dev

在循环中创建新线程是否安全?

Related 相关文章

  1. 1

    会话变量在ASP.Net页的Parallel.For循环内是否是线程安全的

  2. 2

    是否可以在asp.net页中设置localStorage或Session变量,然后在另一页上的javascript中读取它?

  3. 3

    Python:在循环内更改迭代变量是否安全?

  4. 4

    C#Parallel.foreach-使变量线程安全

  5. 5

    ASP.NET页中变量的范围

  6. 6

    如何使用Session变量ASP.NET C#

  7. 7

    修改静态变量是否线程安全?

  8. 8

    ASP.NET MVC Outputcache“线程安全”

  9. 9

    从主线程更改线程的变量值是否安全?

  10. 10

    从主线程更改线程的变量值是否安全?

  11. 11

    Julia线程中用于循环线程的变量是否在本地?

  12. 12

    独立的ASP.NET页

  13. 13

    在asp.net中只有一个线程处理一页吗?

  14. 14

    Session变量上的ASP.NET三元运算符

  15. 15

    如何通过静态变量访问ASP.NET Core中的Session?

  16. 16

    Session变量上的ASP.NET三元运算符

  17. 17

    没有cookie和session的asp.net mvc全局变量[“”]

  18. 18

    ASP.Net Session.Timeout-StateServer和Programmatic Session.Timeout是否足够好?

  19. 19

    Hadoop Reducer类的成员变量是否是线程安全的?

  20. 20

    Hadoop Reducer类的成员变量是否是线程安全的?

  21. 21

    ASP.NET MVC _layout.cshtml是否与Webforms母版页相似?

  22. 22

    Asp.Net Web表单的母版页是否有其他选择?

  23. 23

    静态HttpClient线程在ASP.net HttpRequest上安全

  24. 24

    ASP.NET C#外部SDK不是线程安全的

  25. 25

    ASP.NET起始页始终加载母版页

  26. 26

    PHP for $ _SESSION变量的循环迭代

  27. 27

    在嵌套循环中重用相同的未使用变量是否安全?

  28. 28

    在来自母版页控件的内容页中的变量后面的asp.net代码上设置jQuery选择器

  29. 29

    在循环中创建新线程是否安全?

热门标签

归档