public class DHSApi
{
public void StartFetchingTickerInfo()
{
client = new clientAPI();
Trace.Write("Timer Started" );
Timer timer = new Timer(new TimerCallback(GetQuotes), null, 0, 10000);
}
public void GetQuotes(object obj)
{
Trace.Write("Timer Pass:" + timerPasser++);
if (currentWork > workList.Count - 1)
currentWork = 0;
Thread t = new Thread(Quote);
t.Start(workList);
}
private void Quote(object obj)
{
Trace.Write("Entered Quotes:" + quotesIn++);
lock (workList)
{
List<Work> works = new List<Work>();
int error = 0;
foreach (Work w in works)
{
client.CreateClientAPI();
//Work Work Work
client.DestroyClientAPI();
}
Trace.Write("Exits Quotes:" + d);
QuotesReturned(works);
}
}
private void QuotesReturned(List<Work> works)
{
Model.PIP pip;
foreach (Work w in works)
{
}
}
}
The timer base function suppose run for life time in a web service... the problem is the timer works once or twice and it stops i don't know why? I can't find the reason why. It must be due to threading. There was same kind of problem when i implemented something like this based on even handlers instead of timer..
Timer StartedTimer Pass:0Entered Quotes:0Exits Quotes:1The thread '' (0xb18) has exited with code 0 (0x0). Timer Pass:1Entered Quotes:1Exits Quotes:2The thread '' (0x153c) has exited with code 0 (0x0). Timer Pass:2Entered Quotes:2Exits Quotes:3The thread '' (0xf10) has exited with code 0 (0x0). Timer Pass:3Entered Quotes:3Exits Quotes:4The thread '' (0x1044) has exited with code 0 (0x0). Timer Pass:4Entered Quotes:4Exits Quotes:5The thread '' (0xd24) has exited with code 0 (0x0). Timer Pass:5Entered Quotes:5Exits Quotes:6The thread '' (0x688) has exited with code 0 (0x0). Timer Pass:6Entered Quotes:6Exits Quotes:7The thread '' (0x17c8) has exited with code 0 (0x0). Timer Pass:7Entered Quotes:7Exits Quotes:8The thread '' (0xf34) has exited with code 0 (0x0). Timer Pass:8Entered Quotes:8Exits Quotes:9The thread '' (0x16f4) has exited with code 0 (0x0). Timer Pass:9Entered Quotes:9Exits Quotes:10The thread '' (0xf74) has exited with code 0 (0x0). Timer Pass:10Entered Quotes:10Exits Quotes:11The thread '' (0x938) has exited with code 0 (0x0). Timer Pass:11Entered Quotes:11Exits Quotes:12The thread '' (0x1048) has exited with code 0 (0x0). Timer Pass:12Entered Quotes:12Exits Quotes:13The thread '' (0x17dc) has exited with code 0 (0x0). Timer Pass:13Entered Quotes:13Exits Quotes:14The thread '' (0x174c) has exited with code 0 (0x0). Timer Pass:14Entered Quotes:14Exits Quotes:15The thread '' (0x132c) has exited with code 0 (0x0). Timer Pass:15Entered Quotes:15Exits Quotes:16The thread '' (0x3f8) has exited with code 0 (0x0). Timer Pass:16Entered Quotes:16Exits Quotes:17The thread '' (0x10cc) has exited with code 0 (0x0). Timer Pass:17The thread '' (0x1534) has exited with code 0 (0x0). Entered Quotes:17Exits Quotes:18The thread '' (0x1050) has exited with code 0 (0x0). The thread '' (0x850) has exited with code 0 (0x0). Timer Pass:18Entered Quotes:18Exits Quotes:19The thread '' (0xca0) has exited with code 0 (0x0). Timer Pass:19Entered Quotes:19Exits Quotes:20The thread '' (0x1120) has exited with code 0 (0x0). Timer Pass:20Entered Quotes:20Exits Quotes:21The thread '' (0x508) has exited with code 0 (0x0). Timer Pass:21Entered Quotes:21Exits Quotes:22The thread '' (0x1598) has exited with code 0 (0x0). Timer Pass:22Entered Quotes:22Exits Quotes:23The thread '' (0xb2c) has exited with code 0 (0x0). Timer Pass:23Entered Quotes:23Exits Quotes:24The thread '' (0x1600) has exited with code 0 (0x0). Timer Pass:24Entered Quotes:24Exits Quotes:25The thread '' (0x13bc) has exited with code 0 (0x0). Timer Pass:25Entered Quotes:25Exits Quotes:26The thread '' (0x131c) has exited with code 0 (0x0). Timer Pass:26Entered Quotes:26Exits Quotes:27The thread '' (0x5f4) has exited with code 0 (0x0). Timer Pass:27Entered Quotes:27Exits Quotes:28The thread '' (0x128) has exited with code 0 (0x0). Timer Pass:28Entered Quotes:28Exits Quotes:29The thread '' (0x1420) has exited with code 0 (0x0). Timer Pass:29The thread '' (0xc64) has exited with code 0 (0x0). Entered Quotes:29Exits Quotes:30The thread '' (0xedc) has exited with code 0 (0x0). Timer Pass:30Entered Quotes:30Exits Quotes:31The thread '' (0x136c) has exited with code 0 (0x0). Timer Pass:31Entered Quotes:31Exits Quotes:32The thread '' (0xeb8) has exited with code 0 (0x0). Timer Pass:32Entered Quotes:32Exits Quotes:33The thread '' (0x690) has exited with code 0 (0x0). Timer Pass:33Entered Quotes:33Exits Quotes:34The thread '' (0x1320) has exited with code 0 (0x0). Timer Pass:34Entered Quotes:34Exits Quotes:35The thread '' (0x11b8) has exited with code 0 (0x0). Timer Pass:35Entered Quotes:35Exits Quotes:36The thread '' (0x1684) has exited with code 0 (0x0). Timer Pass:36Entered Quotes:36Exits Quotes:37The thread '' (0x1294) has exited with code 0 (0x0). The thread '' (0x1240) has exited with code 0 (0x0). The thread '' (0xde8) has exited with code 0 (0x0).
and is stops....
and done...no good
Solution Put the line Timer timer; on the top of the class