APIを介して私にプッシュされた株価情報を持つプログラムがあります。また、このプログラムは、XAMLで作成されたフロントエンドを備えています。このフロントエンドは、このプログラムの実行中にフリーズします(つまり、APIが送信している情報を処理しています)。私はDispatcher.InvokeやBackgroundWorkerを使って試してみましたが、スレッディングをたくさん読んだことがありますが、アンフリーズすることはできません。多分私は何か間違っているだけかもしれません。関連するコードをここに添付しました。誰かが助けることを望んでいた。C#XAML GUIがAPI関数のためにフリーズする
private void QuoteUpdate(QuoteInfo info)
{
BackgroundWorker bwQuoteUpdate = new BackgroundWorker();
bwQuoteUpdate = new BackgroundWorker();
bwQuoteUpdate.WorkerSupportsCancellation = true;
bwQuoteUpdate.DoWork += bwQuoteUpdate_DoWork;
bwQuoteUpdate.RunWorkerAsync(info);
}
private void bwQuoteUpdate_DoWork(object sender, DoWorkEventArgs e)
{
try
{
Dispatcher.Invoke(DispatcherPriority.Normal, new ThreadStart(() =>
{
QuoteInfo info = e.Argument as QuoteInfo;
//logical functions and work are here
}));
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show("Error in QuoteUpdate: " + ex.Message, "Exception Thrown");
}
}
を試してみてください? – Tejs
はい、.NET 4にあります – jeev7882