首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VB .Net中的SyncLock和很多线程

VB .Net中的SyncLock和很多线程
EN

Stack Overflow用户
提问于 2012-10-22 11:30:01
回答 1查看 1.9K关注 0票数 2

我的情况是,我有以下方法,它使用SyncLock来确保一次一个线程写入文件。

代码语言:javascript
复制
Private Shared lockThis As New Object 

Public Sub Process()
  SyncLock lockThis
    File.AppendAllText("c:\jamo\foo.txt","foo")
  End SyncLock 
End Sub 

我使用了许多同时运行的线程:

代码语言:javascript
复制
Public Sub CreateThreads()
  Dim trd as Thread
  Dim X as Integer = 10
  For i as integer = 1 to X
    trd = New Thread(AddressOf Process)
    trd.Start()
  Next Sub
End Sub

我的问题是当X很大(如500)时,一个或多个线程同时写入文件。为什么会发生这种情况?

EN

回答 1

Stack Overflow用户

发布于 2012-12-01 14:56:27

我没有证据,但它可能说的是真的。如果任何其他进程在没有共享文件的情况下打开它,有500个或更多的线程试图打开它,那么该文件很可能会被其中一个进程锁定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13004643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档