处理异常说,我有这样的代码:与任务
serviceCallFinished = false;
Task.Factory.StartNew(() => {
response = ServiceManager.GeneralService.ServiceMethod(loginName, password);
}).ContinueWith(parentTask => { serviceCallFinished = true; });
while (!serviceCallFinished)
Thread.Sleep(100);
if (response.UserValid) { }
在这种情况下,ServiceMethod
将抛出一个Exception
但从未显示,而不是我会在response.UserValid
空引用?
为什么例外而不是交给我的UI线程?
注意:这是在UI线程上,我的想法是在服务调用期间不阻塞线程。
它不回答你的问题,但请删除该循环等待完成。使用别的东西(manualResetEvent) –
这里的主线程是一个UI线程,它不能被阻塞,这就是为什么我使用Tread.Sleep。我也不想将方法拆分为能够将线程发送到特定的方法。 – Banshee
如果循环的目的是非阻塞的,你肯定是错误的:UI线程被阻塞进入睡眠状态。 –