Есть ли хороший простой метод задержки вызова функции, позволяя потоку продолжить выполнение?
, например
public void foo()
{
// Do stuff!
// Delayed call to bar() after x number of ms
// Do more Stuff
}
public void bar()
{
// Only execute once foo has finished
}
Я знаю, что этого можно добиться с помощью таймера и обработчиков событий, но мне было интересно, существует ли стандартный способ c # для этого?
Если кому-то интересно, причина этого в том, что foo () и bar () находятся в разных (одноэлементных) классах, которые мне нужно вызывать друг для друга в исключительных обстоятельствах. Проблема заключается в том, что это делается при инициализации, поэтому foo нужно вызвать bar, которому нужен экземпляр класса foo, который создается ... отсюда отложенный вызов bar (), чтобы убедиться, что foo полностью создан. почти попахивает плохим дизайном!
EDIT
Я расскажу о плохом дизайне! Я долго думал, что смогу улучшить систему, однако, эта неприятная ситуация только возникает, когда выдается исключение, во всех других случаях два синглета очень хорошо сосуществуют. Я думаю, что я не собираюсь связываться с неприятными асинхронными шаблонами, скорее, я собираюсь реорганизовать инициализацию одного из классов.