Возможен ли дедлок в IProgress.Report
Есть следующий код. Возможно ли, что если два метода в новых потоках одновременно постучатся в Progress.Report, то будет дедлок?
public static class StaticModel
{
public static IProgress<string> Progress { get; set; }
}
class MainViewModel
{
private object _locker = new object();
//Биндится к UI
public ObservableCollection<string> ProgressCollection { get; set; }
public MainViewModel()
{
ProgressCollection = new ObservableCollection<string>();
StaticModel.Progress = new Progress<string>((content) =>
{
lock(_locker)
{
ProgressCollection.Add(DateTime.Now.ToString("[dd.MM.yy HH:mm:ss]: ") + content);
File.AppendAllText(DateTime.Now.ToString("[dd.MM.yy HH:mm:ss]: ") + content + Environment.NewLine, "progress.txt");
}
}
StartInNewThread(MethodWhoActiveUse_StaticModel_Progress_1);
StartInNewThread(MethodWhoActiveUse_StaticModel_Progress_2);
}
private void StartInNewThread(Action act)
{
Thread t = new Thread(() => act.Invoke());
t.Start
}
}