У меня есть событие backgroundworker_dowork()
в C # .Net 4, которое вызывает три метода, и я хочу, чтобы они выполнялись синхронно.
Учитывая мои ограничения, метод 3 должен выполняться после метода 2, а метод 2 должен выполняться после метода 1.
Однако в BackgroundWorker
все три метода выполняются асинхронно.
Как я могу это изменить?
private void bgwLoading_DoWork(object sender, DoWorkEventArgs e)
{
ArrayList a = (ArrayList)e.Argument;
string[] fileNames = (string[])a[0];
bool isLoad = (bool)a[1];
this.loadMultiImages(fileNames, isLoad);
}
private void loadMultiImages(string[] fileNames, bool isLoad)
{
// I want to execute the following codes sequentially.
Bitmap newBtmap = saveJpeg();
this.SafeInvoke(d => d.imageList.Images.Add(newBtmap));
}
Поскольку SafeInvoke()
занимает меньше времени, чем saveJpeg()
, он начинает выполняться до выполнения saveJpeg()
, изменяя ход выполнения, который я хочу.