草庐IT

帧同步

全部标签

c# - C# 应用程序理货数据库同步

我想制作一个应用程序,将TallySalesOrder和SalesInvoice从理货同步到我们的SQL数据库。目前出于测试目的,我正在使用TallyERP9教育版。我已经在理货中创建了一些销售订单,并且需要使用tallyODBCSql查询从理货中获取所有订单的详细信息根据我的研究,我从理货ODBC表中得到的销售订单详细信息很少,例如VoucherNumber、OrderDate、'VoucherType'..等公司凭证。但很少有细节是空的,尽管相关数据按理货顺序存在。像Reference,PartyName...等等此外,我无法找到TallyODBC表以获取一些其他销售订单相关数据,

c# - 相对于正确配置的同步模型,异步模型真的能提高吞吐量吗?

每个人都知道异步为您提供“更好的吞吐量”、“可扩展性”以及在资源消耗方面更高效。在进行下面的实验之前,我也想到了这种(简单的)方式。它基本上表明,如果我们考虑异步代码的所有开销并将其与正确配置的同步代码进行比较,它几乎不会产生性能/吞吐量/资源消耗优势。问题:与正确配置线程池的同步代码相比,异步代码实际上执行得更好吗?可能是我的性能测试存在某种戏剧性的缺陷?测试设置:两个ASP.NETWebAPI方法,JMeter尝试使用200个线程线程组调用它们(30秒恢复时间)。[HttpGet][Route("async")]publicasyncTaskAsyncTest(){awaitTas

c# - 将 worker 与 UI 线程同步

在现有项目上工作,我必须使用WinForms(有一段时间没有使用它)并且在与UI线程同步时遇到问题。我必须集成的设计如下:BackgroundWorker获取一个Action作为参数并异步执行它。我正在处理的Action有两个部分;一个核心类(包含业务逻辑)和一个GUI部分,如果它必须请求用户交互,则由核心通过事件通知。我已将句柄创建添加到窗体的构造函数中if(!IsHandleCreated){//besuretocreatethehandleintheconstructor//toallowsynchronizationwiththGUIthread//whenusingShow(

c# - 如何在计算机之间同步我的 Resharper 设置?

我在家里有一台工作PC和一台笔记本电脑,我使用Resharper进行开发。不幸的是,每次我添加实时模板或更改格式设置时,我都必须在计算机之间导出和导入设置/模板。对于VisualStudio设置,我使用Automaticallysavemysettingstothisfile选项结合Dropbox上的文件来完成此操作。有什么方法可以使用Resharper设置/模板来做到这一点? 最佳答案 对于ReSharper5,您可以使用ReSharperSettingsManagerPlugin它将所有ReSharper设置保存到一个文件中。这

c# - lock 语句如何确保处理器内同步?

我有一个同时执行两个线程的小型测试应用程序。一个递增staticlong_value,另一个递减它。我已通过ProcessThread.ProcessorAffinity确保线程与不同的物理(无HT)内核相关联以强制处理器内部通信,并且我已确保它们在执行时间上重叠很长一段时间。当然,以下不会导致零:for(longi=0;i因此,合乎逻辑的结论是:for(longi=0;i这当然会导致零。但是,以下也会导致零:for(longi=0;i当然,lock语句确保读取和写入不会重新排序,因为它采用了全栅栏。但是,我找不到有关处理器高速缓存同步的任何信息。如果没有任何缓存同步,我想我应该在两个

c# - 将同步方法变成异步方法

我正在尝试将一些旧代码的同步方法转换为异步方法,但我在理解时遇到了一些麻烦。从我读过的所有视频和教程来看,他们似乎正在创建两种方法:一种是实际功能,另一种是包装器,然后是在UI上调用的包装器。这是我的代码:privateasyncTasklogin(Stringusername,Stringpassword){vartcs=newTaskCompletionSource();RestSharp.RestRequestrequest=newRestSharp.RestRequest("/accounts/login/",RestSharp.Method.GET);RestSharp.IR

c# - 在实现具有同步和异步 API 的库以实现相同功能时使用 async await

关于如何在库中提供相同功能的同步和异步实现,我有几个问题。我会先问他们,然后提供下面的示例代码(实际上很多,但实际上很简单)。有没有办法避免违反DRY原则?考虑JsonStreamReader.Read的实现,JsonStreamWriter.Write,JsonStreamWriter.Flush,ProtocolMessenger.Send,ProtocolMessenger.Receive及其异步版本。在对同一方法的同步和异步版本进行单元测试时,是否有一种方法可以避免违反DRY原则?我正在使用NUnit,尽管我想所有框架在这方面应该都是一样的。应该如何实现返回Task的方法或Ta

c# - Lucene.Net 写/读同步

我可以在打开索引(使用IndexReader)时将新文档写入(使用IndexWriter)吗?还是必须在写作之前关闭阅读?当索引打开用于写入(使用IndexWriter)时,我可以在索引中读取/搜索文档(使用IndexReader)吗?还是我必须在阅读之前关闭写作?Lucene.Net线程是否安全?还是必须自己写? 最佳答案 您可以随时打开任意数量的阅读器/搜索器,但只能打开一个写入器。这是由目录特定的锁强制执行的,通常涉及名为“write.lock”的文件。读者打开快照,作者向索引添加更多数据。在您的作者提交(IndexWrite

c# - 是否有一种通用的方法来同步异步方法?

我们有一个常见的场景,我们有一个方法异步执行一些操作并在完成时引发一个事件。有时我们希望它同步完成,所以我们的代码看起来类似于:ManualResetEventreset=newManualResetEvent(false);someobject.AsyncActionDone+=(sender,args)=>reset.Set();someobject.PerformAsyncAction();reset.WaitOne();有没有办法编写一个辅助方法来做到这一点?我可以传递要执行的操作,但我不确定如何传递让辅助方法知道要监听哪个事件的东西,因为它看起来不像你可以传递EventHan

c# - 在异步操作后立即调用 Task.Wait() 是否等同于同步运行相同的操作?

换句话说,就是vartask=SomeLongRunningOperationAsync();task.Wait();功能相同SomeLongRunningOperation();换句话说,就是vartask=SomeOtherLongRunningOperationAsync();varresult=task.Result;功能相同varresult=SomeOtherLongRunningOperation();根据Task.WaitandInlining,如果正在等待Wait的任务已经开始执行,则Wait必须阻塞。然而,如果它还没有开始执行,Wait可能能够将目标任务从它排队的调