私のコードでは、backgroundworker を使用してタスクを実行し、そのタスクの戻り値を DoWorkEventArgs Result として設定しています。奇妙なことに、DoWork イベント中に Result が設定され、アイテムが含まれていますが、RunWorkerCompleted イベントで結果にアクセスすると、結果が空になることがあります。
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
var i = YouTubeDownloader.GetYouTubeVideoUrls(videoUrls);
e.Result = i; //Contains items
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
UseWaitCursor = false;
if (e.Error != null)
throw e.Error;
List<YouTubeVideoQuality> urls = e.Result as List<YouTubeVideoQuality>; // Empty?