How should I check for a CancellationPending within a BackgroundWorker DoWork method, when within this method I call off to a Pcap.Net packet capture routine, which responses via a callback. The two options I can think of is:
a) write a loop at the bottom of the DoWork method to continually check for CancellationPending
b) put the check in the callback method I wrote which Pcap.Net will call back into - but no doubt the potential issue here is the cancellation can't work then until another patch match occurs and there is a callback
suggestions?
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
}
}