Thanks...I'll read these chapters....
"Paul G. Tobey [eMVP]" <p space tobey no spam AT no instrument no spam
DOT com> wrote in message It would be a good idea to know something about how a Windows program
works before you set off to write one. Read a chapter or two from the
old Petzold book, for example, Programming Windows. Chris is telling
you that you can't do what you want without a message pump, which is
automatically there when you build a forms-based application, but which
does not exist in a console application. So, you either need to build
your application as forms-based or you need to build your own message
pump. If you want to do the latter and stay as a console application,
you must have a minimal understanding of what a message pump is...
Paul T.
I don't know much about what are you talking about...please can you give
me any link?
Thanks..
"Chris Tacke, eMVP" <ctacke.at.opennetcf.dot.com> wrote in message
IIRC, it works via Windows Messages, so you have to have a message pump
to get the notifications. Sleep won't do it - you need to Get and
Dispatch messages from the queue.
--
Chris Tacke, Embedded MVP
OpenNETCF Consulting
Giving back to the embedded community
http://community.OpenNETCF.com
http://blog.opennetcf.com/ctacke/2008/10/20/TheCuttingRoomDetectingPOOMChanges.aspx
Thank you very much. It is very useful!!
It works with windows form but I'm not able to integrate it into my
console application.
Please, I need help! Where I should put this code?
POOMHelper.OutlookItemChanged += new
OutlookItemChangeDelegate(POOMHelper_OutlookItemChanged);
void POOMHelper_OutlookItemChanged(PIMNotificationMessage
notification, PIMItemType itemType, int itemOID, int databaseOID)
{
switch (itemType)
{
case PIMItemType.Calendar:
{...}
break;}}
My Console application:
class Program
{
static Timer timer= new Timer();
static void Main(string[] args)
{
timer = new Timer();
timer.Interval = 500;
timer.OnTimerTick += timerTick;
Thread timerThread = timer.Start();
for (; ; )
Thread.Sleep(5000);
}
And:
class Timer
{
// Delegates
public delegate void Tick();
// Properties
public int Interval;
public Tick OnTimerTick;
// Private Data
Thread _timerThread;
volatile bool _bStop;
public void SleepIntermittently(int totalTime)
{
int sleptTime = 0;
int intermittentSleepIncrement = 10;
while (!_bStop && sleptTime < totalTime)
{
Thread.Sleep(intermittentSleepIncrement);
sleptTime += intermittentSleepIncrement;
}
}
public void Run()
{
while (!_bStop)
{
// Sleep for the timer interval
SleepIntermittently(Interval);
// Then fire the tick event
OnTimerTick();
}
}
public Thread Start()
{
_bStop = false;
_timerThread = new Thread(new ThreadStart(Run));
_timerThread.IsBackground = true;
_timerThread.Start();
return _timerThread;
}
public void Stop()
{
// Request the loop to stop
_bStop = true;
_timerThread.Join(1000);
_timerThread.Abort();
}
}