为什么服务器2012/2008r2没有;t启动线程.task或thread

本文关键字:线程 启动 task thread 2012 服务器 2008r2 没有 为什么 | 更新日期: 2024-09-20 13:09:34

My Task和ParameterizedThreadStart语法为:

using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;

1.

Action<object> action = (object obj) =>
                        {
                            bool res=calldisconnectedServices(disFilename);
                        };
Task t1 = new Task(action, "start_disconnected");
t1.Start();

2.

Task<bool> chunkUpdate = new Task<bool>(() => calldisconnectedServices(disFilename));
                chunkUpdate.Start();

3.

ParameterizedThreadStart ths = new ParameterizedThreadStart(_Service.calldisconnectedServices);
Thread th = new Thread(ths);
th.Start(disFilename);

4.

TaskScheduler scheduler = TaskScheduler.Default;
var fetchTask = Task<bool>.Factory.StartNew(() => calldisconnectedServices(disFilename)).
                            ContinueWith<bool>(
                            x =>
                            {
                                return true;
                            },
                        CancellationToken.None,
                        TaskContinuationOptions.None, scheduler);

5.

 Parallel.Invoke(() =>
                {
                calldisconnectedServices(disFilename);
                }
                );

不幸的是,后台工作还没有开始,我不知道为什么。也许与操作系统设置有关,因为只是

calldisconnectedServices(disFilename);

呼叫没有任何问题。

请告知为什么任务不起作用?

为什么服务器2012/2008r2没有;t启动线程.task或thread

使用Task.Run

var chunkUpdate = Task.Run(() => calldisconnectedServices(disFilename));

它既好又简单。

您使用的操作系统应该是不受影响的,只要它支持线程。

"RononDex"过了很长时间,我自己找到了答案。:)

我在任务中调用的函数中创建了一个文件。不幸的是,我使用的是

HttpContext.Current.Server.MapPath("_some文件名");

现在我正在使用

HttpRuntime.AppDomainAppPath+"_some文件名";

现在所有的任务都在顺利进行。因为现在我没有得到NULL HttpContext.Current.Server.:)