为什么这段代码没有启动任务?我总是在等待激活。 在这里,我正在做一个简单的任务,试图从剪贴板读取并在剪贴板可访问时返回我。当我运行该行时,我可以看到任务状态正在等待完成。为什么会发生这种情况?
TaskScheduler scheduler = TaskScheduler.Default;
var fetchTask =
new Task<Boolean>(() =>
{
while (1 == 1)
{
try
{
IDataObject obj = Clipboard.GetDataObject();
return true;
}
catch (Exception e)
{
}
}
})
.ContinueWith<Boolean>(
x =>
{
Console.WriteLine("Task completed");
return true;
},
CancellationToken.None,
TaskContinuationOptions.None, scheduler);
答案 0 :(得分:2)
因为......你没有开始吗?
fetchTask.Start();
(CW尊重现有的两条评论)
答案 1 :(得分:0)
永远不会开始尝试。
fetchTask.Start();
答案 2 :(得分:0)
我知道这是旧的,但如果fetchTask.Start()
不起作用,请尝试使用TaskFactory
TaskScheduler scheduler = TaskScheduler.Default;
var fetchTask = Task<Boolean>.Factory.StartNew(() =>
{
while (1 == 1)
{
try
{
IDataObject obj = Clipboard.GetDataObject();
return true;
}
catch (Exception e)
{
}
}
})
.ContinueWith<Boolean>(
x =>
{
Console.WriteLine("Task completed");
return true;
},
CancellationToken.None,
TaskContinuationOptions.None, scheduler);