가끔 작동하는 일부 비동기 코드가 있는데 때로는 그렇지 않습니다. 이 코드 파일은 항상 생성되지만 때로는 비어 (나는 항상 내용을 가진 파일 전송) : 그래서,무작위로 작동하는 코드를 비 동기화해야합니까?
[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);
}
});
}
을해야 I 해제 Asyncify이 무작위로 작업 코드와, 만약 그렇다면, 어떻게 (unsyncness의 모호함없이 같은 것을 성취 할 수있는 것은 무엇인가? (이 무작위적인 행동을 일으키는 문제라고 가정))?
다른 사람이 며칠 전,하지만 작업으로 변경하면 전혀 작동하지 않아 - 내가 그랬을 때 코드에 도달하지 못했습니다. –
비동기는 반환 유형 또는 반환 유형이없는 경우 작동합니다. 반환 유형을 원할 경우 개발자에게 전적으로 의존하십시오. 콜백 처리기가 있습니까? 나는 빈 파일의 경우 Exception을 던지고 콜백 핸들러가 없다고 가정 할 것이다. – Ottak
'void '를 반환하면 코드가 충돌하는지 알 수 없습니다. 'Task'는 예외를 잡아낼 것입니다. –