Есть ли простой простой способ задержки вызова функции, пока поток продолжается?
например.
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
}
Я знаю, что это может быть достигнуто с помощью таймера и обработчиков событий, но мне было интересно, существует ли стандартный способ С# для этого?
Если кому-то интересно, причина в том, что это необходимо, так это то, что foo() и bar() находятся в разных (singleton) классах, которые мне нужно вызвать друг в друге в исключительных обстоятельствах. Проблема состоит в том, что это делается при инициализации, поэтому foo необходимо вызвать bar, которому нужен экземпляр класса foo, который создается... следовательно, отложенный вызов bar(), чтобы гарантировать, что foo полностью инстанцируется. почти пахнет плохим дизайном!
ИЗМЕНИТЬ
Я расскажу о плохом дизайне в соответствии с рекомендациями! Я давно думал, что, возможно, смогу улучшить систему, однако эта неприятная ситуация возникает только тогда, когда возникает исключение, и все остальные два синглтона сосуществуют очень хорошо. Я думаю, что я не собираюсь разбираться с неприятными асинхронными паттерами, скорее я собираюсь реорганизовать инициализацию одного из классов.