110,528
社区成员
发帖
与我相关
我的任务
分享
public class TCaptureCommand : TCommand
{
public static List<TCaptureCommand> ExistedCommands
{
get
{
return _ExistedCommands;
}
}
public static void CancelAllExistedCommands()
{
List<TCaptureCommand> temp = new List<TCaptureCommand>();
foreach (TShowVideoCommand svc in ExistedCommands)
{
temp.Add(svc);
}
foreach (TShowVideoCommand command in temp)
{
command.Cancel();
}
}
private static List<TCaptureCommand> _ExistedCommands = new List<TCaptureCommand>();
private BackgroundWorker Worker;
public TCaptureCommand()
: base()
{
}
protected override void ExecuteInternal()
{
Worker = new BackgroundWorker();
Worker.DoWork += new DoWorkEventHandler(Worker_DoWork);
Worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(Worker_RunWorkerCompleted);
Worker.WorkerReportsProgress = false;
Worker.WorkerSupportsCancellation = true;
ExistedCommands.Add(this);
Worker.RunWorkerAsync();
}
void Worker_DoWork(object sender, DoWorkEventArgs e)
{
while ((Worker.CancellationPending == false )
{
// 在这里写入拍照代码
Thread.Sleep(1000);
}
}
void Worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
ExistedCommands.Remove(this);
}
public void Cancel()
{
if (Worker != null)
{
Worker.CancelAsync();
}
}
}
private BackgroundWorker Worker;
public TCaptureCommand()
: base()
{
}
protected override void ExecuteInternal()
{
Worker = new BackgroundWorker();
Worker.DoWork += new DoWorkEventHandler(Worker_DoWork);
Worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(Worker_RunWorkerCompleted);
Worker.WorkerReportsProgress = false;
Worker.WorkerSupportsCancellation = true;
ExistedCommands.Add(this);
Worker.RunWorkerAsync();
}