111,129
社区成员
发帖
与我相关
我的任务
分享[b]--------------------------------1.----------------------------------------------------------
Task<bool> t = Task.Factory.StartNew(() =>
{
System.Threading.Thread.Sleep(1000);
return true;
}
);
if(t.Result) {xxxxxxxx将要做的事xxxxxxxx}
--------------------------------2.---------------------------------------------------------
Task task= new Task(() => System.Threading.Thread.Sleep(1000));
task.Start();
task.ContinueWith(t => xxxxxxxx将要做的事xxxxxxx);[/b]
Task<bool> task = Task.Factory.StartNew(() =>
{
System.Threading.Thread.Sleep(1000);
return true;
});
task.Start();
task.ContinueWith(t => {
if (t.Result)
xxxxxxxx将要做的事xxxxxxx
});
另外关于多线程task或是任务延续的一些知识,也可以参考 这里[/quote]
我懂了,意思就算是返回值在UI线程中了也是会阻塞,我原来以为不会。
我实际在我源码中有一堆方法,每个方法可能都有几百行,其中不定时的需要休眠。
所以我要拿返回值 不是为了真的为了拿返回值。 因为需求,必须要等到时间够,不然不准执行后面的代码,但又不能出现卡顿影响到UI的操作。。
要不然你上一句刚SLEEP 下面所有的代码全执行了。SLEEP时间根本还没到。
如果不用线程,界面又会卡~~~~~~
TASK也是刚刚了解。没有找到讲的很好的文章。而且我更喜欢实战,光看文章 字一多就会比较头痛。
Task<bool> task = Task.Factory.StartNew(() =>
{
System.Threading.Thread.Sleep(1000);
return true;
});
task.Start();
task.ContinueWith(t => {
if (t.Result)
xxxxxxxx将要做的事xxxxxxx
});
另外关于多线程task或是任务延续的一些知识,也可以参考 这里Task<bool> t = Task.Factory.StartNew(() => { 第二件事情(); return true; });
做第一件事的前半段
if(t.Result) { ..... }
继续完成未尽事业