使用线程运行webservice方法

时间:2015-08-10 22:52:42

标签: c# asp.net multithreading web-services

我想使用以下代码将图像发送到网络服务。

Thread th = new Thread(new ThreadStart(sendImage));
th.Start();

当我正常使用此方法时,它工作正常,但如果我使用这样的线程;

scrollViewDidScroll:

它不起作用,不会抛出任何错误。有人有任何想法吗? (Web服务和测试网页位于同一服务器上。)

1 个答案:

答案 0 :(得分:0)

我认为问题出在启动sendImage线程的代码中:

Thread th = new Thread(new ThreadStart(sendImage));
th.Start();

如果在此代码之后没有其他工作,那么您的程序中就会出现竞争条件:子线程尝试工作,但可以随时中止,因为它是后台线程并且不会阻止程序闭。

此问题无法在调试模式下重现,因为VS不会优化正在调试的代码。

我建议您为代码添加Task并明确等待它:

var task = Task.Run(() => sendImage());
await task;