我想使用以下代码将图像发送到网络服务。
Thread th = new Thread(new ThreadStart(sendImage));
th.Start();
当我正常使用此方法时,它工作正常,但如果我使用这样的线程;
scrollViewDidScroll:
它不起作用,不会抛出任何错误。有人有任何想法吗? (Web服务和测试网页位于同一服务器上。)
答案 0 :(得分:0)
我认为问题出在启动sendImage
线程的代码中:
Thread th = new Thread(new ThreadStart(sendImage));
th.Start();
如果在此代码之后没有其他工作,那么您的程序中就会出现竞争条件:子线程尝试工作,但可以随时中止,因为它是后台线程并且不会阻止程序闭。
此问题无法在调试模式下重现,因为VS不会优化正在调试的代码。
我建议您为代码添加Task
并明确等待它:
var task = Task.Run(() => sendImage());
await task;