Saya menggunakan Tasks untuk menjalankan panggilan server yang berjalan lama di ViewModel saya dan hasilnya akan kembali Dispatcher
digunakan TaskScheduler.FromSyncronizationContext()
. Sebagai contoh:
var context = TaskScheduler.FromCurrentSynchronizationContext();
this.Message = "Loading...";
Task task = Task.Factory.StartNew(() => { ... })
.ContinueWith(x => this.Message = "Completed"
, context);
Ini berfungsi dengan baik saat saya menjalankan aplikasi. Tetapi ketika saya menjalankan NUnit
pengujian saya, Resharper
saya mendapatkan pesan kesalahan pada panggilan ke FromCurrentSynchronizationContext
sebagai:
SynchronizationContext saat ini tidak dapat digunakan sebagai TaskScheduler.
Saya rasa ini karena tes dijalankan pada thread pekerja. Bagaimana cara memastikan pengujian dijalankan di utas utama? Saran lain dipersilahkan.
TaskScheduler.FromCurrentSynchronizationContext()
di dalam lambda dan eksekusi ditangguhkan ke utas lain. mendapatkan konteks di luar lambda memperbaiki masalah.