データベース接続が開いている関数が立て続けに呼び出されます。私の問題は、1 つのデータベース接続が閉じられる前に、関数の別のインスタンスが呼び出され、データベースでデッドロックが発生する可能性があることです。
私が試してみました:
private static WaitHandle[] waitHandles = new WaitHandle[]
{
new AutoResetEvent(false)
};
protected override void Broadcast(Data data, string updatedBy)
{
Action newAction = new Action(() =>
{
DataManagerFactory.PerformWithDataManager(
dataManager =>
{
// Update status and broadcast the changes
data.UpdateModifiedColumns(dataManager, updatedBy);
BroadcastManager.Instance().PerformBroadcast(
data,
BroadcastAction.Update,
Feature.None);
},
e => m_log.Error(ServerLog.ConfigIdlingRequestHandler_UpdateFailed() + e.Message));
}
);
Thread workerThread = new Thread(new ThreadStart(newAction));
ThreadPool.QueueUserWorkItem(workerThread.Start, waitHandles[0]);
WaitHandle.WaitAll(waitHandles);
}
しかし、スレッド エラーが発生し、プログラムがフリーズします。これは、私が信じているパラメーターを持たないスレッド開始関数と関係があります。
助けてくれてありがとう