TransactionScope и проблема тайм-аута - PullRequest
1 голос
/ 27 июля 2010

Мы знаем, что класс TransactionScope может использовать пользовательское значение времени ожидания. Но исключение тайм-аута выдается при выходе из блока using {}. Как сгенерировать это время сразу после истечения времени ожидания?

1 Ответ

2 голосов
/ 27 июля 2010

Это невозможно.

TransactionScope просто сохраняет время, когда вы начали транзакцию, а затем проверяет это время при совершении транзакции.
У него нет возможности вызвать исключение в любой произвольной точке.

Как правило, единственное исключение, которое может быть выдано в любой момент выполнения (управляемого кода), это ThreadAbortException.

Поэтому, если вы действительно хотите, вы можете создать отдельную ветку, которая спит в течение времени ожидания, а затем прерывает вашу исходную ветку.
Однако это ужасная идея.

...