Ban*_*hee 3 .net c# parallel-processing task async-ctp
我尝试在我的应用程序中使用这样的任务:
Task test;
test = Task.Factory.StartNew(() => general.Login(loginName, password));
MyTextBox.Text = "test text";
Run Code Online (Sandbox Code Playgroud)
它将是进行此调用的UI线程,我需要阻止它,直到工作线程从服务返回,但我不希望UI冻结.
我可以使用ContinueWith,但这将分割我的登录方法,这使得更难以遵循.我还需要主UI线程来运行此方法中的其余代码.
我该如何解决这个问题?
这正是C#5中异步解决的问题.目前,您基本上必须拆分代码.这是一种痛苦,但事实就是如此.(您的描述稍微偏离,顺便说一句-你不希望阻止UI线程......你想,直到工作线程返回"不执行你的逻辑的第二部分"不完全一样的东西:). (您可能还想禁用UI的其他一些部分,但我们无法确定.)
值得在异步功能上抢先一步 - 请参阅Visual Studio异步主页以获取大量资源.