У меня есть следующий код, который использует System.Threading.Tasks
private async void UploadDocument(System.IO.FileInfo fileInfo)
{
var someTask = await Task.Run<bool>(() =>
{
// open input stream
using (System.IO.FileStream stream = new System.IO.FileStream(FileTextBox.Text, System.IO.FileMode.Open, System.IO.FileAccess.Read))
{
using (StreamWithProgress uploadStreamWithProgress = new StreamWithProgress(stream))
{
uploadStreamWithProgress.ProgressChanged += uploadStreamWithProgress_ProgressChanged;
// start service client
FileTransferWCF.FileTransferServiceClient client = new FileTransferWCF.FileTransferServiceClient();
//FileTransferClient.FileTransferServiceClient client = new FileTransferClient.FileTransferServiceClient();
// upload file
client.UploadFile(fileInfo.Name, fileInfo.Length, uploadStreamWithProgress);
// close service client
client.Close();
}
}
return true;
}).ContinueWith(r =>{
if(r.Result) LogText("Done!!");
});
}
Если я оставлю это и попытаюсь скомпилировать, я получу:
«Невозможно присвоить void локальной переменной с неявным типом»** в
var someTask
Затем я меняю var someTask
на Task someTask
, но теперь получаю сообщение об ошибке:
«Невозможно неявно преобразовать тип void в System.Threading.Tasks.Task».
Любая подсказка о том, как с этим бороться?
UploadDocument
, оно должно быть в вызывающем. - person Servy   schedule 25.02.2013async void
. блоги. msdn.com/b/lucian/archive/2013/02/18/ - person SLaks   schedule 26.02.2013