timer_elapsed イベントで datacontext オブジェクトを接続/使用する最良の方法を教えてください。初めて完全に実行される timer_elapsed 内に datacontext オブジェクトがありますが、以降の timer_elapsed イベントの呼び出しでは何もしません。スレッドプール スレッドで経過イベントが呼び出されるたびに、新しいインスタンスが作成されることを理解しています。この動作を制御するには、または少なくともコードを一貫して実行するにはどうすればよいですか。ありがとう。
これは私の構造マップ設定です
ForRequestedType<BulkSMSDataContext>()
.TheDefaultIs(() => new BulkSMSDataContext())
.CacheBy(InstanceScope.Hybrid);
これは私のタイマーの実装です
void _timerSendScheduledMessages_Elapsed(object sender, ElapsedEventArgs e)
{
DateTime currentUTC = DateTime.UtcNow.AddSeconds(-DateTime.UtcNow.Second).AddMilliseconds(-DateTime.UtcNow.Millisecond);
var msgToSend = from c in _messageRepository.GetMessages(MessageTypes.Scheduled)
where c.Time == currentUTC
select c;
foreach (var msg in msgToSend)
{
int scheduledMsgID = msg.MessageID;
Response res = _messageService.Send(msg);
_messageRepository.DeleteScheduledMessage(scheduledMsgID);
}
}