Fix event handling for CompanyProfile
This commit is contained in:
@@ -145,7 +145,8 @@ namespace MarketData.DataAccess
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,exception);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,$"Exception: {exception.ToString()}");
|
||||
if(null!=strQuery)MDTrace.WriteLine(LogLevel.DEBUG,$"Query was {strQuery}");
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
|
||||
@@ -56,6 +56,7 @@ namespace MarketData.Helper
|
||||
{
|
||||
ManualResetEvent[] availableEvents=GetAvailableEvents(resetEvents);
|
||||
ManualResetEvent[] busyEvents=GetBusyEvents(resetEvents);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,$"Available:{availableEvents.Length} Busy:{busyEvents.Length}");
|
||||
if (null == PeekQueueItem() && 0==busyEvents.Length)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Queue contains {0} items, busy events {1}, all done.",0,busyEvents.Length));
|
||||
@@ -67,7 +68,7 @@ namespace MarketData.Helper
|
||||
if (null != queueItem)
|
||||
{
|
||||
availableEvents[index].Reset();
|
||||
CompanyProfileThreadHelper companyProfileThreadHelper = new CompanyProfileThreadHelper(queueItem,resetEvents[index]);
|
||||
CompanyProfileThreadHelper companyProfileThreadHelper = new CompanyProfileThreadHelper(queueItem,availableEvents[index]);
|
||||
ThreadPool.QueueUserWorkItem(ThreadPoolCallback, companyProfileThreadHelper);
|
||||
try { Thread.Sleep(SLEEP_TIME_MS); }catch (Exception) { ;}
|
||||
}
|
||||
@@ -99,10 +100,16 @@ namespace MarketData.Helper
|
||||
public void ThreadPoolCallback(Object companyProfileThreadHelperContext)
|
||||
{
|
||||
CompanyProfileThreadHelper companyProfileThreadHelper = (CompanyProfileThreadHelper)companyProfileThreadHelperContext;
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[UpdateCompanyProfile] Thread {0} started for {1}...", Thread.CurrentThread.ManagedThreadId, companyProfileThreadHelper.CompanyProfile.Symbol));
|
||||
LoadCompanyProfileEx(companyProfileThreadHelper.CompanyProfile);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[UpdateCompanyProfile] Thread {0} ended for {1}", Thread.CurrentThread.ManagedThreadId, companyProfileThreadHelper.CompanyProfile.Symbol));
|
||||
companyProfileThreadHelper.ResetEvent.Set();
|
||||
try
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[UpdateCompanyProfile] Thread {0} started for {1}...", Thread.CurrentThread.ManagedThreadId, companyProfileThreadHelper.CompanyProfile.Symbol));
|
||||
LoadCompanyProfileEx(companyProfileThreadHelper.CompanyProfile);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[UpdateCompanyProfile] Thread {0} ended for {1}", Thread.CurrentThread.ManagedThreadId, companyProfileThreadHelper.CompanyProfile.Symbol));
|
||||
}
|
||||
finally
|
||||
{
|
||||
companyProfileThreadHelper.ResetEvent.Set();
|
||||
}
|
||||
}
|
||||
|
||||
private static void LoadCompanyProfileEx(CompanyProfile companyProfile)
|
||||
|
||||
Reference in New Issue
Block a user