Вот что я хочу сделать:
- Есть таймер с некоторым интервалом
- В коде обратного вызова таймера, если выполняется какое-либо условие, должен выполняться другой поток
Я поместил свой код в класс, для которого создается основная форма, и код выполняется при вызове метода («StartSync ()», пример кода).
Проблема в том, что код выполняется в течение нескольких секунд, но затем завершается. Я полагаю, я делаю что-то глупое, но я действительно не вижу, что это такое. Благодарю за любую помощь в этом.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Diagnostics;
namespace WindowsFormsApplication1
{
class Syncer
{
static bool SYNC_IN_PROGRESS;
public void StartSync()
{
SYNC_IN_PROGRESS = false;
Timer timer = new Timer(timerCallback, null, 0, 1000);
}
public void timerCallback(Object stateInfo)
{
Debug.WriteLine("Sync?");
if (!SYNC_IN_PROGRESS)
{
SYNC_IN_PROGRESS = true;
Thread thSync = new Thread(new ThreadStart(sync));
thSync.Start();
}
}
void sync()
{
Debug.WriteLine("Syncing...");
SYNC_IN_PROGRESS = false;
}
}
}