Я пытаюсь создать настольное приложение, которое будет получать смс при поступлении в модем, и отправлять сообщение на веб-сервер, а тем временем в фоновом режиме выполняется другая задача. Я использую GSMLibrary для этой цели. Мой модем GSM модем. Я использовал обработчик получения сообщений GSMLibrary, но мне не удается прочитать сообщение.
Я использую backgroundworker для поддержания процесса в рабочем состоянии.
Я инициализировал обработчик событий в backgroundworker, Вот так,
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e){
BackgroundWorker worker = sender as BackgroundWorker;
GsmCommMain comm = new GsmCommMain("COM9", 115200, 3000);
comm.MessageReceived += new MessageReceivedEventHandler(comm_MessageReceived1);
while(!worker.CancellationPending){
Task(params);
}
}
Now My Event Handler,
private void comm_MessageReceived1(object sender, MessageReceivedEventArgs e){
var obj = e.IndicationObject;
if (obj is MemoryLocation)
{
var loc = (MemoryLocation)obj;
GsmCommMain comm = (sender as GsmCommMain);
DecodedShortMessage messages = comm.ReadMessage(loc.Index, loc.Storage);
comm.DeleteMessage(loc.Index, loc.Storage);
return;
}
}
Так что, когда я отлаживал, я обнаружил, что в обработчике сообщений строка DecodeShortMessage выполняется, а затем идет вниз до comm.Delete, он переходит к задаче фонового рабочего. Также значение сообщения остается нулевым.
Что я здесь не так делаю? Как я мог заставить это работать. Заранее спасибо.