我得到了这个程序,它给出了语法错误"System.Threading.Tasks.task没有包含Run的定义“。
我正在使用VB2010 .NET 4.0,有什么想法吗?在.net 4.0中运行有什么替代方案吗?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ChatApp
{
class ChatProg
{
static void Main(string[] args)
{
Task<int> wakeUp = DoWorkAsync(2000,"Waking up");
Task.WaitAll(wakeUp);
}
static Task<int> DoWorkAsync(int milliseconds, string name)
{
//error appears below on word Run
return Task.Run(() =>
{
Console.WriteLine("* starting {0} work", name);
Thread.Sleep(milliseconds);
Console.WriteLine("* {0} work one", name);
return 1;
});
}
}
}
发布于 2013-07-12 11:42:27
看起来Task.Factory.StartNew
就是你要找的。
return Task.Factory.StartNew<int>(() => {
// ...
return 1;
});
由于编译器可以推断返回类型,因此这也是可行的:
return Task.Factory.StartNew(() => {
// ...
return 1;
});
发布于 2013-07-12 11:53:27
我用Task.Factory.StartNew
check detail link更改了你的代码
static Task<int> DoWorkAsync(int milliseconds, string name)
{
//error appears below on word Run
return Task.Factory.StartNew(() =>
{
Console.WriteLine("* starting {0} work", name);
Thread.Sleep(milliseconds);
Console.WriteLine("* {0} work one", name);
return 1;
});
}
发布于 2018-08-01 14:45:23
如果您使用的是Microsoft.Bcl.Async,请转到:
return TaskEx.Run(() =>
{
Console.WriteLine("* starting {0} work", name);
Thread.Sleep(milliseconds);
Console.WriteLine("* {0} work one", name);
return 1;
});
https://stackoverflow.com/questions/17607048
复制相似问题