我有一些有时可以运行的异步代码,有时不会。有了这个代码,文件总是创建,但有时它是空的(我总是发送具有内容的文件):我应该取消异步随机工作代码吗?
[HttpPost]
[Route("api/inventory/sendxml/{userId}/{pwd}/{filename}")]
public async void SendInventoryXML(String userId, String pwd, String fileName)
{
Task task = Request.Content.ReadAsStreamAsync().ContinueWith(t =>
{
var stream = t.Result;
using (FileStream fileStream = File.Create(String.Format(@"C:\HDP\{0}.xml", fileName), (int)stream.Length))
{
byte[] bytesInStream = new byte[stream.Length];
stream.Read(bytesInStream, 0, (int)bytesInStream.Length);
fileStream.Write(bytesInStream, 0, bytesInStream.Length);
}
});
}
所以,我应该取消Asyncify这个随机工作代码,如果是这样,怎么样(什么会完成同样的事情没有异样的变幻莫测(假设这是造成这种随机行为的问题))?
其他人告诉我,几天前,但将其更改为Task导致它根本无法工作 - 当我这样做时代码从未达到。 – 2014-09-10 22:50:41
异步将使用返回类型或不返回类型。如果他们想要返回类型,完全取决于开发人员。你有回调处理程序吗?我会假设空文件的情况下抛出一个异常和没有回叫处理程序你不知道。 – Ottak 2014-09-10 22:56:43
返回'void',你不知道你的代码是否崩溃。一个“任务”将捕获异常。 – 2014-09-10 22:58:44