Uygulama, iş parçacığı güvenli midir? Eğer değilse, neyi özlüyorum? volatile
anahtar kelimesini bir yerde mi olmalıyım? Ya da OnProcessingCompleted
yönteminde bir yerde kilit var mı? Öyleyse nerede? C#: İş parçacığı karşılaşma olayları
public abstract class ProcessBase : IProcess
{
private readonly object completedEventLock = new object();
private event EventHandler<ProcessCompletedEventArgs> ProcessCompleted;
event EventHandler<ProcessCompletedEventArgs> IProcess.ProcessCompleted
{
add
{
lock (completedEventLock)
ProcessCompleted += value;
}
remove
{
lock (completedEventLock)
ProcessCompleted -= value;
}
}
protected void OnProcessingCompleted(ProcessCompletedEventArgs e)
{
EventHandler<ProcessCompletedEventArgs> handler = ProcessCompleted;
if (handler != null)
handler(this, e);
}
}
Not: soyut bir temel sınıftır çünkü özel olayı ve açık arabirim şeyler var neden nedeni vardır. Ve ondan gelen sınıflar, doğrudan bu olayla ilgili hiçbir şey yapmamalıdır.
(comment yanıtlandı) –