C# 线程方法中返回值

uinterr=EDSDK.EDS_ERR_OK;newThread(delegate(){intBusyCount=0;while(BusyCount<20){err=... uint err = EDSDK.EDS_ERR_OK;
new Thread(delegate()
{
int BusyCount = 0;

while (BusyCount < 20)
{
err = EDSDK.EdsSendCommand(MainCamera.Ref, EDSDK.CameraCommand_TakePicture, 0);
if (err == EDSDK.EDS_ERR_DEVICE_BUSY) { BusyCount++; Thread.Sleep(50); }
else { break; }
}
Error = err;

}).Start();
如何把ERR的值返回出来
展开
 我来答
荣孟谯良弼
2019-07-13 · TA获得超过3802个赞
知道大有可为答主
回答量:3149
采纳率:33%
帮助的人:230万
展开全部
在线程外建立一个变量,通过现场改变变量的值就可以了。线程往往会多次执行,操作后的数据一般都是通过公共变量实现的;
匿名用户
推荐于2016-03-31
展开全部
private delegate void VoidDelegateString(string err);//定义
在while (BusyCount < 20)
里面加入重绘
this.Invoke(new VoidDelegateString(showData),err);
建立方法

private void showData(int err)
{
lable.text=err;

}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式