Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在一个线程中执行.NET任务_C#_Asp.net_.net 4.0_Task_Culture - Fatal编程技术网

C# 在一个线程中执行.NET任务

C# 在一个线程中执行.NET任务,c#,asp.net,.net-4.0,task,culture,C#,Asp.net,.net 4.0,Task,Culture,我可以相信一个任务总是在一个线程中执行吗?它可以是任意的,但整个线程应该是相同的,因为我需要正确设置线程的区域性 Task bind = Task.Factory.StartNew(() => { Thread.CurrentThread.CurrentCulture = culture; // do some asp.net binding stuff with automatic // date formatting gridView.DataSou

我可以相信一个
任务总是在一个线程中执行吗?它可以是任意的,但整个线程应该是相同的,因为我需要正确设置线程的
区域性

Task bind = Task.Factory.StartNew(() =>
{
    Thread.CurrentThread.CurrentCulture = culture;

    // do some asp.net binding stuff with automatic
    // date formatting

    gridView.DataSource = table;
    gridView.DataBind();
}
如果我不能,是否有一个左右的参数来获取此行为


干杯,Matthias

我相信为任何特定任务指定的代码都将在一个线程上执行,但continuations可能不会。如果任务主体中的任务是线程敏捷的,那么编写有效的代码将非常困难,所以我很确定您没有问题


另一方面,如果在相关的地方显式使用区域性,代码可能会变得更干净。根据ASP.NET方面的情况,这可能不可行,但如果可能,值得考虑。

是的,任务体在一个线程中执行,但启动子任务或显式创建其他线程(线程、线程池等)时除外。

谢谢Jon。我尝试显式传递区域性,但没有找到任何方法(
DataSource
setter,
DataBind
method)。但是,我同意这将是最优雅的方式。我不相信不同线程上的数据绑定会很好地发挥作用。。。不仅如此,http上下文将有一个很好的点,我不知道这一点。我对代码进行了一些重构,以便以异步方式接收数据,并以同步方式绑定数据。这是正确的方法,不是吗?是的,但前提是在提取时您有其他有用的事情要做。i、 e.“启动异步”、“执行其他操作”、“连接异步”、“数据绑定”可以,但“启动异步”、“连接异步”、“数据绑定”毫无意义。