为什么服务器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);
呼叫没有任何问题。
请告知为什么任务不起作用?
使用Task.Run
var chunkUpdate = Task.Run(() => calldisconnectedServices(disFilename));
它既好又简单。
您使用的操作系统应该是不受影响的,只要它支持线程。
"RononDex"过了很长时间,我自己找到了答案。:)
我在任务中调用的函数中创建了一个文件。不幸的是,我使用的是
HttpContext.Current.Server.MapPath("_some文件名");
现在我正在使用
HttpRuntime.AppDomainAppPath+"_some文件名";
现在所有的任务都在顺利进行。因为现在我没有得到NULL HttpContext.Current.Server.:)