LuJiaYi/Thread.cs

51 lines
1.2 KiB
C#
Raw Normal View History

2024-08-17 18:00:59 +08:00
using System;
using System.Threading;
using System.Drawing; // 或者使用其他图像处理库
public class CameraThread
{
private readonly int _cameraId;
private readonly Action<Bitmap> _onImageCaptured;
private Thread _thread;
private bool _running;
public CameraThread(int cameraId, Action<Bitmap> onImageCaptured)
{
_cameraId = cameraId;
_onImageCaptured = onImageCaptured;
_running = false;
}
public void Start()
{
_running = true;
_thread = new Thread(Run);
_thread.Start();
}
public void Stop()
{
_running = false;
_thread?.Join();
}
private void Run()
{
while (_running)
{
// 模拟图像捕获
Bitmap image = CaptureImageFromCamera(_cameraId);
_onImageCaptured?.Invoke(image);
// 休眠一段时间,模拟捕获间隔
Thread.Sleep(1000);
}
}
private Bitmap CaptureImageFromCamera(int cameraId)
{
// 这里添加实际的图像捕获代码
// 例如,从相机 SDK 捕获图像并返回
return new Bitmap(640, 480); // 模拟图像
}
}