具有参考传递参数的多线程访问的函数

时间:2011-04-29 17:03:51

标签: vb.net multithreading

我在vb.net中,并且有一个可以被多个线程访问的函数。函数内的所有内容都使用局部变量。但是,每个线程都将通过引用传递其自己的数据集。

从我所看到的地方变量应该没问题,但我认为进入的数据集是一个问题。

我应该如何控制此函数的访问/执行以确保它是线程安全的?感谢。

1 个答案:

答案 0 :(得分:2)

假设'dataset'表示System.Data.DataSet,如果您的函数只是从数据集中读取,那么在任何情况下都不需要同步,因为“此类型对于多线程读取操作是安全的”(来自http://msdn.microsoft.com/en-us/library/system.data.dataset.aspx)。

如果您正在修改数据集,那么只要每个数据集都是不同的实例,就应该没有问题。

如果您正在修改数据,并且如果不同的线程可能会传入对同一数据集的引用,则您需要使用MonitorSyncLock或{{来同步对数据集的访问权限1}}在C#)或其他一些同步技术。