Как мне проверить наличие CancellationPending в методе BackgroundWorker DoWork, когда в этом методе я вызываю процедуру захвата пакета Pcap.Net, которая отвечает через обратный вызов.Я могу придумать два варианта:
a) написать цикл в нижней части метода DoWork, чтобы постоянно проверять CancellationPending
b) поставить проверку в метод обратного вызова, который я написал, которыйPcap.Net перезвонит - но, без сомнения, потенциальная проблема здесь в том, что отмена не может сработать, пока не произойдет совпадение другого патча и не будет получен обратный вызов
предложения?
public class MainClass {
private void bgWorker_DoWork(object sender, DoWorkEventArgs e)
{
var worker = sender as BackgroundWorker;
_packetCapturer = new PacketCapturer();
}
}
public class PacketCapturer
public PacketCapturer() {
// Start Capture Here
// Opens PacketCommunicator
// communicator.ReceivePackets(0, PacketCapturerCallback);
}
private static void PacketCapturerCallback(Packet packet) {
// Deal with returned packet
}
}