C# 几个线程同时调用一个方法会出问题吗?

[复制链接]
查看11 | 回复5 | 2018-4-8 19:51:19 | 显示全部楼层 |阅读模式
看你的方法与全局变量或者某一对象有没有关系, 如果有, 那么结果肯定是错的, 如果没有全局变量和对象, 只是处理返回计算结果的话, 那么没有问题...
回复

使用道具 举报

千问 | 2018-4-8 19:51:19 | 显示全部楼层
如果F()只是个单纯C#方法,他是不会搞错输入输出的对应关系的.但你这F()是个设备操作方法.是否会搞错就要取决于设备和设备驱动程序了,这点你要到设别厂商那去确认.如果设备没用分辨输入输出对的能力,那么只加锁就行了...
回复

使用道具 举报

千问 | 2018-4-8 19:51:19 | 显示全部楼层
不会,电脑都是用时序来完成数据的处理,但如果f()方法处理时间长了,会引起线程的卡顿!...
回复

使用道具 举报

千问 | 2018-4-8 19:51:19 | 显示全部楼层
那要看你这个方法里面有没有公共静态变量的相关修改了。如果没有修改公共静态变量,就不会。...
回复

使用道具 举报

千问 | 2018-4-8 19:51:19 | 显示全部楼层
如果F是一个向终端发送命令的方法,那么这里是否会出错就和仪器有着非常大的关联了 这里的核心问题在于A线程先发起请求,并开始等待F()给予返回,仪器此时处理A线程发来的请求,A线程处于等待阶段,那么如果B线程在这个时候进行请求,B线程发送给F()的请求是否会影响A线程的结果。 这在于仪器是否支持多请求并发如果支持,那么可以使用这样的异步请求...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行