草庐IT

同步fifo

全部标签

c# - 无法进行传出调用,因为应用程序正在调度输入同步调用

我从System.Thread.Timer线程池得到了这个(上面标题中的错误)所以我有我的TimerWrapper包装System.Thread.Timer将实际执行移动到System.Thread.ThreadPool并且我仍然得到它,所以我将它移动到一个新的Thread(callback).Start()并且我仍然得到它。当我将它放在一个全新的线程上时,它如何调度输入同步调用???这是一个非常非常小的原型(prototype)应用程序,我在其中所做的就是触发一个正在执行此操作的计时器...IEnumerableswc=SHDocVw.ShellWindows()HashSetwin

c# - 在 C# 中是否有保证 FIFO 顺序的同步类?

它是什么以及如何使用?我需要它,因为我有一个每秒插入数据库的计时器,并且我在计时器处理程序和主线程之间有一个共享资源。我想保证如果定时器处理程序在插入时花费的时间超过一秒,则等待的线程应该按顺序执行。这是我的计时器处理程序的示例代码:privatevoidInsertBasicVaraibles(objectparam){try{DataTablesMutex.WaitOne();//mutexformysharedresources//insertintoDB}catch(Exceptionex){//Handle}finally{DataTablesMutex.ReleaseMut

c# - 专用于字节流的FIFO/Queue buffer

是否有任何.NET数据结构/类组合允许将字节数据附加到缓冲区的末尾,但所有查看和读取都是从头开始的,从而在我读取时缩短了缓冲区?MemoryStream类似乎完成了其中的一部分,但我需要为读取和写入维护不同的位置,并且它不会在读取数据后自动丢弃数据。已在对thisquestion的回复中发布了答案这基本上是我正在尝试做的,但我更喜欢我可以在同一进程的不同组件中进行异步I/O的操作,就像普通管道甚至网络流一样(我需要过滤/处理数据优先)。 最佳答案 我将发布一次我为工作项目编写的一些逻辑的精简副本。这个版本的优点是它与缓冲数据的链接列

c# - 使用最小起订量的同步方法测试 EF 异步方法

我有这个方法:publicasyncTaskDeleteUserAsync(GuiduserId){using(varcontext=this.contextFactory.Create()){varuser=awaitcontext.Users.FirstOrDefaultAsync(x=>x.Id.Equals(userId));if(user==null){thrownewException("Userdoesn'texist");}context.Users.Remove(user);awaitcontext.SaveChangesAsync();}}我想测试一下。所以我创建了

c# - 如何同步两个多行文本框的滚动?

如何在C#(WinForms)中同步两个多行文本框的滚动?当您在文本框A中向上/向下滚动一行时,文本框B也应该向上/向下滚动。反之亦然。这是否可以在没有自定义控件的情况下实现? 最佳答案 是的,您必须创建一个自定义文本框以便检测它是否滚动。诀窍是将滚动消息传递给另一个文本框,以便它同步滚动。只有当其他文本框大小相同且行数相同时,这才有效。向您的项目添加一个新类并粘贴如下所示的代码。编译。将工具箱顶部的两个新控件拖放到窗体上。将Buddy属性设置为两个上的另一个控件。运行,在它们中键入一些文本,然后在拖动滚动条时观察它们同步滚动。us

C#有异步函数调用同步函数或者同步函数调用异步函数

我正在编写一个C#.Net4.5库来执行常见的sql数据库操作(备份、恢复、执行脚本等)。我希望每个操作都有同步和异步功能,因为这个库将被控制台和GUI应用程序使用,但我不想在任何地方重复代码。所以在我看来,我有两个选择:在同步函数中编写完成工作的代码,然后将其包装在异步函数的任务中,如下所示:publicvoidBackupDB(stringserver,stringdb){//Doalloftheworkandlongrunningoperationhere}publicasyncTaskBackupDBAsync(stringserver,stringdb){awaitTask.

c# - 本地化资源 .NET - 如何使它们保持同步?

当我们遵循本地化指南时,我们最终会得到至少几个资源文件。Resource.resx和Resource.CI.resx是特定的CultureInfo资源。假设我们在Resource.resx中添加了一百个字符串对,并希望在另一个资源中转换这些键。我们现在可以复制粘贴它们并翻译它们,这可能是第一次成功。然而,在我们翻译字符串之后,很难保持文件同步-它会自动重新排序字符串,我目前不明白确保每个字符串本地化的假定方法是什么。由于资源字符串应该相互链接并完成额外的工作以确保正确构建附属程序集,我希望有一个功能,如“确保每个资源字符串都存在于本地化资源文件中”'但我担心缺少一个..

c# - 异步使用同步 WCF 服务

我目前正在将客户端应用程序迁移到.NET4.5以使用async/await。该应用程序是当前仅提供同步服务的WCF服务的客户端。我现在想知道,我应该如何异步使用这个同步服务?我正在使用channelfactories使用在服务器和客户端之间共享的服务契约(Contract)连接到WCF服务。因此,我无法使用VisualStudio或svcutil的自动生成来生成异步客户端代理。我已阅读thisrelatedquestion这是关于是否使用Task.Run在客户端包装同步调用,或者是否改为使用异步方法扩展服务契约。答案表明,服务器提供“真正的”异步方法对客户端性能更好,因为没有线程必须主

c# - 如何同步任务?

假设我有一个保存到文件的异步方法:asyncTaskSaveToFileAsync(){varfile=awaitfolder.GetFileAsync(...)varstream=file.OpenFileAsync(...)///etc}现在假设同时调用了两次SaveToFileAsync。这是一个问题,因为您不能同时写入同一个文件如果这是一个常规方法,lock()会解决这个问题:voidSaveToFile(){lock(something){///codehere}}但是,在异步方法中不允许使用锁。当然,可以调用Monitor.Enter()或使用互斥体,但这些对象与线程一起工

c# - 同步两个 RichTextBox 的滚动位置?

在我的应用程序表单中,我有两个RichTextBox对象。它们将始终具有相同数量的文本行。我想“同步”这两个之间的垂直滚动,这样当用户改变其中一个的垂直滚动位置时,另一个滚动相同的量。我该怎么做呢? 最佳答案 感谢杰的回答;经过更多搜索后,我还找到了描述的方法here.我将在下面为任何感兴趣的人概述。首先,声明以下枚举:publicenumScrollBarType:uint{SbHorz=0,SbVert=1,SbCtl=2,SbBoth=3}publicenumMessage:uint{WM_VSCROLL=0x0115}pub