Tag: race condition

后台工作程序:确保在执行RunWorkerCompleted之前已完成ProgressChanged方法

我们假设我正在使用后台工作器,我有以下方法: private void bw_DoWork(object sender, DoWorkEventArgs e) { finalData = MyWork(sender as BackgroundWorker, e); } private void bw_ProgressChanged(object sender, ProgressChangedEventArgs e) { int i = e.ProgressPercentage; // Missused for i Debug.Print(“BW Progress Changed Begin, i: ” + i + “, ThreadId: ” + Thread.CurrentThread.ManagedThreadId); // I use this to update a table and an XY-Plot, […]

在System.Collections.Concurrent.ConcurrentDictionary中防御竞争条件

.NET ConcurrentDictionary容易受到可能导致意外数据的竞争条件的影响,如本MSDN文章底部所述。 我假设有几个因素需要考虑。 问:我应该如何编写不易受可能导致数据丢失的竞争条件的代码? 在我的场景中,我有一个输入流,它具有一个不断增加的索引(n ++)。 我的想法是,如果竞争条件发生,我可以检测到丢失的数据并重新发送。 另一方面,可能有更好的方法来做到这一点,我不知道。