草庐IT

多线段

全部标签

c# - .NET 中的多线程和闭包

如果我有这个:publicstringDoSomething(stringarg){stringsomeVar=arg;DoStuffThatMightTakeAWhile();returnSomeControl.Invoke(newFunc(()=>someVar));}并且可以从多个线程并发调用此方法,一个线程卡在DoStuffThatMightTakeAWhile,然后第二个线程使用不同的arg调用DoSomething,这是否会更改所有线程的someVar的值,因此DoSomething在两次调用中都返回someArg的第二个版本,还是每个线程都存在一个someVar?编辑我认

Python多线程详解

现代计算机CPU物理核心普遍比较多,我们在编写程序时经常会用到多线程技术来提高程序运行的效率。作为python萌新,我在掌握基本语法后就很想摆弄一下python的多线程,使用起来确实很有python的特点,代码量少、操作方便。之后断断续续写了一些多线程程序,直到今天下午逛论坛,看到很多人说python多线程机制的一些内情,我才意识到自己有多愚蠢哈哈。我把自己学到的内容系统的整理一下,以备后忘,也帮帮后来者。Python多线程详解1.线程创建与管理1.1创建线程1.2设置守护线程1.3设置线程阻塞1.4线程间通信的方法1.4.1线程锁1.4.2queue模块(同步队列类)1.5杀死线程1.6线程

c# - 如何保护可能在多线程或异步环境中使用的资源?

我正在开发供各种消费者使用的C#API。此API提供对共享资源的访问(在我的例子中是进行串行通信的硬件),通常会有几个不同的参与者试图同时使用它。我遇到的问题是我的一些消费者会想在多线程环境中使用它——每个参与者独立工作并尝试使用该资源。一个简单的锁在这里工作得很好。但是我的一些消费者更喜欢使用异步等待和时间片资源。(据我了解)这需要一个异步锁来将时间片返回给其他任务;锁定锁会停止整个线程。而且我认为拥有串行锁充其量是性能不佳的,最坏的情况是潜在的竞争条件或死锁。那么我如何才能在公共(public)代码库中为这两种潜在的并发使用保护这个共享资源呢? 最佳答案

c# - 多线程,Task.Run 错误 'The call is ambiguous between the following methods or properties'

当我尝试构建项目时,显示以下错误消息。Thecallisambiguousbetweenthefollowingmethodsorproperties:'System.Threading.Tasks.Task.Run(System.Action)'and'System.Threading.Tasks.Task.Run(System.Func)'我该如何解决这个问题?publicstaticclassMaintananceManager{privatestaticThreadSafeSocialMediaListPostList=newThreadSafeSocialMediaList(

c# - 静态代码如何与多线程一起运行?

我正在阅读Threadingfromwithinaclasswithstaticandnon-staticmethods我也有类似的情况。我有一个从资源中提取数据并根据数据创建一些运行时对象的静态方法。staticclassWorker{publicstaticMyObjectDoWork(stringfilename){MyObjectmo=newMyObject();//...doessomeworkreturnmo;}}该方法需要一段时间(在本例中它正在读取5-10mb文件)并返回一个对象。我想采用这种方法并在多线程情况下使用它,这样我就可以一次读取多个文件。撇开设计问题/准则不

c# - 在 C# 中使用多线程加速循环(问题)

假设我有一个函数,它遍历一百万/十亿个字符串并检查其中的某些内容。例如:foreach(StringiteminListOfStrings){result.add(CalculateSmth(item));}它会消耗很多时间,因为CalculateSmth是一个非常耗时的函数。我想问一下:这种进程怎么集成多线程?f.ex:我想启动5个线程,每个线程都返回一些结果,这样一直持续到列表有项目为止。也许任何人都可以展示一些示例或文章..忘了说我在.NET2.0中需要它 最佳答案 你可以试试Parallelextensions(.NET4.

c# - 有助于在 C# 中学习多线程的练习建议

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我想很好地掌握C#中的多线程。我读过一些文章,例如JosephAlbahari'stutorials解释概念,但正如你所知,无论你读了多少书,如果你不练习,大部分内容都会变成垃圾。我需要一些与现实生活实践相关的具有指导性和实用性的代码示例,而不是一些打印一些行的示例。你有什么建议吗?

c# - SQL CLR 中的多线程缓存

是否有任何多线程缓存机制可以在SQLCLR函数中工作而不需要将程序集注册为“不安全”?同样描述了inthispost,简单地使用lock语句将在安全程序集上抛出异常:System.Security.HostProtectionException:AttemptedtoperformanoperationthatwasforbiddenbytheCLRhost.Theprotectedresources(onlyavailablewithfulltrust)were:AllThedemandedresourceswere:Synchronization,ExternalThreading

C#多线程无符号递增

我想从多个线程递增一个无符号整数。我知道Interlocked.Increment,但它不处理无符号整数。我可以使用lock(),但出于性能原因我宁愿不使用。仅以正常方式递增它是否线程安全?偶尔的增量丢失也没关系,因为它只用于统计。我不希望值(value)被破坏。 最佳答案 您说您出于性能原因不想使用lock-但您测试过吗?一个无争议的锁(这很可能是,从它的声音来看)是非常便宜的。当涉及到线程时,我通常会选择“明显正确”而不是“聪明且可能性能更好”(一般来说,但尤其是线程)。在锁定和不锁定的情况下对您的应用进行基准测试,看看您是否能

c# - 如何在 Winform 中使用多线程?

我是多线程新手。我有一个带有标签和进度条的winform。我想显示处理结果。首先,我使用Application.DoEvents()方法。但是,我发现表格很僵硬。然后我在MSDN上阅读了一些关于多线程的文章。其次,我使用BackgroundWorker来完成它。this.bwForm.DoWork+=(o,arg)=>{DoConvert();};this.bwForm.RunWorkerAsync();表单不会卡住,我可以在处理时拖放。不幸的是,它会抛出InvalidOperationException。所以我必须使用这个。Control.CheckForIllegalCrossTh