Tag: 同步

MongoDB for C#和iPhone应用程序

我正处于设计应用程序的初始阶段,该应用程序将在C#中实现后端,该后端将使用IIS上托管的WCF Web服务为其他平台提供数据。 其中一个平台将是iPhone。 由于这是一个个人项目,我想用它来学习MongoDB。 我已经知道有MongoDB和C#的社区开发驱动程序,所以我可以使用MongoDB处理服务器端的持久性。 在不知道MongoDB提供的复制模型的情况下,我正在考虑某种简单的同步模型,以便在iPhone未连接或连接不良时保持数据本地化。 这是一个问题:可以使用MongoDB C驱动程序在iPhone中使用MongoDB吗? 有没人试过呢?

应该何时使用每个线程同步对象?

在什么情况下应该使用以下每个同步对象? ReaderWriter锁定 信号 互斥

Microsoft Sync Framework – 双向同步如何工作?

我有两个客户端A和B.两个客户端都有相同的同步本地数据缓存。 如果客户端A进行离线编辑以记录X,然后客户端B也离线编辑记录X并与服务器同步,则当客户端A与服务器同步时,客户端B所做的更改不会被反映,并且没有任何数量的双向同步使得两个客户端正确地与服务器同步。 除此之外,我的同步应用程序非常适合删除,添加编辑等。它只是同时进行的离线编辑会破坏完整性。 我正在使用SQL 2005(使用必要的SQL脚本来应用同步支持) 是否有任何资源可以解释同步框架实际工作原理以及它何时决定何时同步条目的具体细节?

我应该*始终*同步访问从多个线程使用的所有双字段/属性/变量?

注意我倾向于编写无锁代码,所以我尽可能避免任何类型的锁。 相反,我只是使用while(true)循环,因为我有很多CPU功率。 根据http://msdn.microsoft.com/en-us/library/aa691278%28VS.71%29.aspx double变量更新不是primefaces的。 我关心两个问题: 如果一个线程修改了字段或属性的变量而另一个线程同时读取它我希望有前一个或新值,但我不想收到一些奇怪的东西。 即如果一个线程将值从5.5更改为15.15我想在另一个线程中拥有这两个数字中的一个,但不是5.15或15.5或其他任何东西。 如果一个线程已经更新了值,另一个线程在此之后读取它我希望收到最新的,最新的值。 我认为volatile关键字可以帮助解决这个问题,但似乎不能,因为“Volatile不能保证值的新鲜度。它会阻止一些优化,但不能保证线程同步。” 如上所述,c#原始数组是volatile吗? 问题: 我是否更正未经同步可能会出现这两个问题? 如果你能给我一些简短的例子,certificate没有同步它就行不通 – 那会很好 我应该如何访问双字段或变量或属性以始终具有真正的最新值? “同步”会保证“新鲜度”吗? 最快的方法是什么? 什么螺旋锁? 目前我在我的程序中使用了很多double变量和decimal变量/字段/属性,几乎每个都工作正常,所以我真的很困惑,因为我从不同的线程访问它们没有任何同步,这只是工作…但现在我是认为使用float进行“内置同步化”可能会更好

在C#中同步多行文本框位置

我有一个C#应用程序,其中有两个并排的多行文本框,每个文本框位于拆分容器的一侧。 我想同步它们的垂直滚动,这样当用户向上或向下滚动其中一个文本框时,另一个文本框分别向同一方向滚动。 有没有办法做到这一点? 谢谢。 其他资料 – 7/26/10 我在MSDN网站上找到了一些有趣的API: TextBox.GetFirstVisibleLineIndex方法 TextBox.GetLastVisibleLineIndex方法 TextBox.ScrollToLine方法 那里的文档看起来很有希望,但是当我尝试使用它时,我的编译器(Microsoft Visual C#2008 Express Edition)抱怨,即使在将PresenationFramework添加为Reference并using System.Windows.Controls;插入之后也是PresenationFramework using System.Windows.Controls; 在文件的顶部: 错误1’System.Windows.Forms.TextBox’不包含’GetFirstVisibleLineIndex’的定义,并且没有可以找到接受类型’System.Windows.Forms.TextBox’的第一个参数的扩展方法’GetFirstVisibleLineIndex’(你错过了吗?使用指令或程序集引用?) 其他资料 – 7/27/10 我正在努力实现Jay的实现新控件的建议,但是我无法将eventhandler绑定到控件中。 这是我到目前为止所拥有的: public partial class MyFormApplication : Form { public MyFormApplication() // MyFormApplication constructor { this.InitializeComponent(); this.textBox1.Dispose(); // Replacing with textBoxSync1 this.textBox2.Dispose(); // Replacing with textBoxSync2 // Draw textBoxSync1 this.textBoxSync1.AcceptsReturn = […]

何时在UI应用程序中调用SynchronizationContext.SetSynchronizationContext()?

我正在学习SynchronizationContext类。 我试图了解在WinForm / WPF应用程序的上下文中调用SynchronizationContext.SetSynchronizationContext()的常见用法场景。 设置线程的SynchronizationContext意味着什么? 我什么时候该做,为什么? 另外,如果我设置它,我应该在某个时候取消它吗? 编辑: 在他的回答中,@ Hans Passant问为什么我在考虑SetSynchronizationContext() 。 我的想法是在工作线程上设置上下文,以便在该线程上运行的代码将具有要使用的上下文。 private void button3_Click(object sender, EventArgs e) { var syncContext = SynchronizationContext.Current; Task.Factory.StartNew(() => { // Setup the SynchronizationContext on this thread so // that SomeAsyncComponentThatNeedsACurrentContext // will have a context when it needs one if (SynchronizationContext.Current == null) SynchronizationContext.SetSynchronizationContext(syncContext); var c = […]

如何在C#中找到Mutex?

如何从C#中的互斥锁中找到获取互斥锁的? 当mutex.WaitOne(timeout)超时时,它返回false 。 但是,如何从互斥锁手柄中找到它? (也许使用p / invoke。) 更新 : public class InterProcessLock : IDisposable { readonly Mutex mutex; public bool IsAcquired { get; private set; } public InterProcessLock(string name, TimeSpan timeout) { bool created; var security = new MutexSecurity(); security.AddAccessRule(new MutexAccessRule(new SecurityIdentifier(WellKnownSidType.WorldSid, null), MutexRights.Synchronize | MutexRights.Modify, AccessControlType.Allow)); mutex = new Mutex(false, name, out created, security); […]

如何更改StoreGeneratedPattern并强制Entity Framework生成带有标识的insert语句

我有服务器和客户端数据库,我需要保持一些服务器数据与客户端数据同步。 除了在服务器上具有IDENTITY(1,1)之外,数据库模式是相同的。 数据只能在服务器上创建。 它必须使用服务器的id插入客户端。 CREATE TABLE [MyServer].[dbo].[Test1]( [Test1Id] [int] IDENTITY(1,1) NOT NULL, [Test1Value] [datetime] NOT NULL, CONSTRAINT [PK_Test1] PRIMARY KEY CLUSTERED ( [Test1Id] ASC ) ) ON [PRIMARY] CREATE TABLE [MyClient].[dbo].[Test1]( [Test1Id] [int] NOT NULL, [Test1Value] [datetime] NOT NULL, CONSTRAINT [PK_Test1] PRIMARY KEY CLUSTERED ( [Test1Id] ASC ) ) ON [PRIMARY] 有没有办法在不重建程序集的情况下为实体类更改StoreGeneratedPattern,这样我就可以在客户端插入IDENTITY了? 我花了一些时间研究 EntityModelCodeGenerator 但没有任何成功。 […]

多个线程在等待一个事件?

我想要的是AutoResetEvent的等效,多个线程可以等待,所有都在设置时恢复。 我知道这可以通过为每个线程设置一个AutoResetEvent并设置每个线程来实现 – 但是有更简单的方法吗? 一种不依赖于事件句柄数组的方法? 有效的(我认为)我希望能够做到这一点: private volatile string state; private MultiEventHandle stateChanged = new MultiEventHandle(); public void WaitForBlob() { while (true) { object saved = stateChanged.Current; // some sentinel value if (state == “Blob”) break; stateChanged.WaitTilNot(saved); // wait til sentinel value != “current” } } public void SetBlob() { state = “Blob”; stateChanged.Change(); // […]

使用DirectShow.NET的音频同步问题

我已经在DirectShow.NET的论坛上开始了一个post,这里是链接http://sofzh.miximages.com/c%23/8030745.png 目前,我正在测试来自DirectShow.NET样本的CapWMV样本的所有更改。 请高度赞赏任何建议,我没有希望:/ 谢谢, 伊兰。 更新: 似乎音频和video之间有500毫秒不等的差距,如果我使用virtualDub将音频延迟500毫秒它看起来很好,怎么能在图中设置它?