问题标签 [synchronize]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 在另一个线程中运行事件处理程序(没有线程阻塞)
我有一个Communicator
在后台线程中工作的类,它在 TCP 端口上接收数据。
Communicator 有一个OnDataReceived
类型 的事件EventHandler<DataReceivedEventArgs>
。
还有另一个类Consumer
包含订阅Communicator.OnDataReceived
事件的方法。
该类Consumer
在 Form 构造函数中创建,然后在另一个线程上调用其方法之一。此方法是一个无限循环,因此在应用程序执行期间它会停留在该方法中。
我想做的是让Communicator.OnDataReceived
事件调用consumer.PresentData
消费者线程上的方法。
这几乎是可能的吗?如果是,我应该使用什么样的机制(同步类)?
iphone - 跨标签栏应用程序同步 plist
我有一个三选项卡应用程序,它共享一个用于连接信息(客户端 ID、服务器地址、端口号)的 plist。在每个视图控制器中,一个 NSUserDefaults 对象在 viewDidLoad 方法中被初始化:
我的一个视图代表一个“设置”页面,允许用户对 plist 进行更改。但是,当更新 plist 时,更改不会反映在所有选项卡视图中,因为每个对象都需要同步:
我了解到 viewDidLoad 方法在应用程序的生命周期内只调用一次(至少对于 Tab Bar 应用程序),所以我不能把同步调用放在这里。然后我转向 AppDelegate 类并发现了 tabBarController 方法。如何使用此方法在所有视图控制器之间同步 NSUserDefaults 对象而不需要同步按钮?这甚至是在应用程序打开时共享/调整偏好的正确方法吗?
这是我现在的位置:
提前谢谢。
java - 运行同步方法时 GUI 不起作用
我有一个应用程序,其中包含一个主对象(包含 Swing GUI)和一个调用对象的 handle() 方法的支持线程。
我注意到当handle() 方法同步时,当线程使用handle() 方法时,主对象上的GUI 没有响应。代码:
我从句柄()中删除了同步关键字,即使线程正在使用句柄()方法,GUI也会响应。
需要注意的一件有趣的事情是,当我使用另一个对象作为锁时,当线程使用 handle() 方法时,GUI 会再次响应。代码:
这表明 Swing GUI 使用同步的方法。我对吗?随时向我指出任何资源 - 找不到我想要的。
谢谢。
iphone - 将数据推送到 NSUserDefault 后是否必须发送同步消息?
只是好奇这是强制性的。例如,在我的应用程序中,我只是从 [NSUserDefaults standardUserDefaults] 推送和获取信息,而不需要任何“同步”调用。也许我错过了一些东西,但我没有注意到任何问题(YET):)。我知道这个调用应该在内存和磁盘数据之间进行同步,但为什么在我的情况下它并不明显?
sync - 使用 SyncStatusObserver 或通过其他方式获取同步状态信息?
具体来说,我有一个令人难以置信的“Droid HTC”,Android 版本 2.2,基带 2.15.00.07.28,内核 2.6.32.17-g9a2fe16,内部版本 3.26.605.1,软件编号 3.26.605.1
我已经安装好 Eclipse 和 Android SDK 并且运行良好。很高兴我可以在 Eclipse 中调试和在我的 Droid 上执行单步代码。
我已经阅读了许多书籍并尝试了所有示例,作为实践,并且正在建立在其他面向对象语言(包括 C++)的多年软件开发经验(> 10 年)的基础上,而不是 Java,但我正在挑选它很快就起来了。
我还下载了在我的“Droid running repo / git”上运行的源代码版本,我一直在研究 FRG83G packages/apps/AccountsAndSyncSettings/src/com/android/settings 代码.
现在。我想编写一个小应用程序,它会在同步失败时通知我。我试图解决的问题是,在我使用 GMail 联系人界面(例如)进行了大量更改之后,'Droid 无法同步它们(可能是删除太多?)。因此,当同步始终失败时,我想显示一个通知栏图标,让我知道此同步失败。如果没有这样的应用程序,它失败的第一个迹象是我可能在 2-3 天后发现缺少联系信息。
因此,逻辑似乎表明我的小应用程序需要成为 SyncStatusObserver 才能在同步操作更改状态时得到通知,然后在该同步上获取 SyncStatusInfo 并注意哪个同步失败以及何时失败。据我所知,这意味着实现一个 SyncStatusObserver 并通过调用 ContentResolver.addStatusChangeListener 将其连接到广播。我已经实现了这一点,并且确实看到了通知消息。
我相信我理解对象模型,因为帐户类型具有零到多个帐户权限,并且每个帐户权限都表示正在同步的数据类型(联系人与日历等)。
SyncStatusObserver 的单一方法 onStatusChanged(final int which) 具有“int which”参数,该参数似乎试图指示哪个帐户类型或哪个帐户权限刚刚更改了它的同步状态。我已经编写并连接了它,并且正在接收这些方法调用,正如人们所期望的那样,当一种类型的数据已同步时。当我的应用程序正在执行时,我在 Eclipse 调试器日志记录窗口中观察到了这一点。
我的问题是如何将单个 int 参数值与帐户类型和/或帐户权限相关联?我想调用 SyncInfo getCurrentSync() 并记录帐户、权限和开始时间。(为什么要开始时间?我们真的不想要结束时间和结束状态吗?)
在 stackoverflow 上搜索,我发现在发布How do do one listen for progress from Android SyncAdapter? SyncStatusObserver 非常无用,因为它不能使用单个整数参数传达非常有用的信息。哦。好的。
我想还有另一种看待这个问题的方法是:在 HTC Incredible 上,当您在主屏幕上并选择菜单 -> 设置 -> 帐户和同步 -> 谷歌(列出的帐户)时,用户界面显示上次成功同步 GMail 帐户的每种帐户类型的时间。获取此信息的代码在哪里,因为这与我所追求的信息相同,并且我想在每次 SyncStatusObserver 的 onStatusChanged 方法调用之后获取此信息。
在发布Syncadapter last update date中,基本上表明当前 Droid 代码没有公开最后同步日期/时间。
有没有其他方法可以获取每个 SyncAdators 的最后成功同步日期/时间?我真的很想抓挠我的痒(可以这么说)。
jakarta-ee - 将 office 365 联系人同步到我系统上的联系人
我有一个 J2EE 系统,并且我使用集成到我的系统中的 office 365。
我想将我的 J2EE 系统上的联系人同步到 office 365 上的联系人。
有任何想法吗?
php - PHP同步时区夏令时问题
我有一个将数据加载到 MySQL 表中的网站。表中的两个条目是“开始日期”和“结束日期”。'startdate' 是使用 CURRENT_TIMESTAMP 自动生成的。'enddate' 由用户使用日期选择器选择。
如果用户位于与服务器不同的时区,这会产生问题。例如(我在太平洋时区,服务器在中部)。如果我在下午 5 点创建一个条目并选择晚上 10 点的结束日期,它会在晚上 7 点和晚上 10 点进入数据库,创建一个 3 小时的窗口而不是 5。我想要的是将结束日期转换为中央时间(相同作为服务器)。因此,使用我的示例,我希望数据库中的条目是晚上 7 点和午夜 12 点。
我可以使用此 javascript 获取用户时区偏移量:
这将返回 -7(我在 GMT-8 中,我假设 1 小时差异是因为夏令时)。我对解决方案的第一个想法是假设服务器在 -5 中,然后比较两者(回到我的示例,-5 - -7 = 2,因此将 2 添加到“结束日期”)。
当我们切换回标准时间时,问题就来了。我假设我的 javascript 将开始返回 -8 而不是 -7,从而破坏了我的功能。我知道 PHP 的 date_default_timezone_get(),但它返回的是字符串而不是数字。我想我需要的是一个类似的函数,它将(对于中央时间)在夏令时返回-5,在标准时间返回-6。
eclipse - 如何将 .git 文件夹保留在克隆的 Eclipse 项目之外
问题
从克隆的 git 存储库导入 Eclipse 项目后,我进行了一些更改并提交 - 和 wtf? 我在项目中添加了一个“.git”文件夹,带有头部和参考的整个 shebang,最糟糕的是整个对象数据库被添加到项目中,所有文件/文件夹都有那个小问号图标,表明文件尚未添加/尚未被 git 跟踪。这个 .git 文件夹存在于实际的工作目录中(这有什么意义?)。您可以想象在尝试使用“同步”工具/视图时这会导致多么烦人(这应该使提交工作更轻松,您可以看到所有更改以及更改的文件和差异)。
问题(tl;dr)
如何从克隆的 git 存储库中正确导入 Eclipse 项目?我不希望 .git 文件夹在我提交时出现在“团队 > 同步”中,让 .git 文件夹驻留在我的项目之外的其他地方。
附加信息
我在使用 Eclipse Indigo 和 Egit 的 Windows 7 上。我正在使用 Egit 从http://git.apache.org/(确切地说是 ofbiz 项目)克隆一个 git 存储库,并在向导中选择从这个新克隆的存储库导入现有项目的选项。
是的,我知道我对 Egit 的期望是多么低。事实上,如果有任何替代方法(外部 git 工具?Windows 的命令行 git?其他?)在 Eclipse 中使用 git-tracked 项目,将实际的 .git 内容排除在项目之外,我很乐意放弃 Egit .
eclipse - SVN:在 Eclipse 中将分支与主干同步?
我有一个 SVN 分支和一个主干。主干定期更改,而分支则没有。
时不时地(假设每周一次)我想用主干的最新更改更新分支的本地工作副本。
理想情况下,我希望以与使用最新版本的分支相同的方式执行此操作:使用 Eclipse:Team->Synchronize,因此我可以在更新之前查看所有更改。
这是否也可以使用不同的存储库(例如:主干)?如果没有,人们如何在更新之前查看更改?
我查看了 Team->Merge,但这似乎直接将更改更新到我的工作副本,而无法先查看更改(我认为预览功能令人困惑,并且不提供良好的并行-Synchronize 具有的更改/冲突的侧面视图)。
java - Problem in multi-threaded Java application - synchronized method not working as expected
I am coding a program similar to producer-consumer in java (but with the consumer only portion, with no producer thread). It looks like the critical region is being executed at the same time by multiple threads despite the fact that I am calling the code of a synchronized method.
Here is the code:
Class Main.java:
Class Pedido.java:
Class Consumidor.java
The method consomebuffer is synchronized but it looks like the variable posicao (portuguese name for position) is being accessed by the other threads at the same time, that should not happen, coz it is a synchronized method. The program output is something like this:
Thread: Thread[Thread-7,5,main] Pedido: 0 Inicio: 2011/09/24 21:14:18 Fim: 2011/09/24 21:14:19 posicao 0
Thread: Thread[Thread-6,5,main] Pedido: 0 Inicio: 2011/09/24 21:14:18 Fim: 2011/09/24 21:14:19 posicao 0
Thread: Thread[Thread-2,5,main] Pedido: 0 Inicio: 2011/09/24 21:14:18 Fim: 2011/09/24 21:14:19 posicao 0
Thread: Thread[Thread-9,5,main] Pedido: 0 Inicio: 2011/09/24 21:14:18 Fim: 2011/09/24 21:14:19 posicao 0
Thread: Thread[Thread-3,5,main] Pedido: 4 Inicio: 2011/09/24 21:14:18 Fim: 2011/09/24 21:14:19 posicao 4
Thread: Thread[Thread-5,5,main] Pedido: 5 Inicio: 2011/09/24 21:14:18 Fim: 2011/09/24 21:14:19 posicao 5
Thread: Thread[Thread-0,5,main] Pedido: 0 Inicio: 2011/09/24 21:14:18 Fim: 2011/09/24 21:14:19 posicao 5
Thread: Thread[Thread-8,5,main] Pedido: 0 Inicio: 2011/09/24 21:14:18 Fim: 2011/09/24 21:14:19 posicao 5
Thread: Thread[Thread-4,5,main] Pedido: 5 Inicio: 2011/09/24 21:14:18 Fim: 2011/09/24 21:14:19 posicao 5
Thread: Thread[Thread-1,5,main] Pedido: 0 Inicio: 2011/09/24 21:14:18 Fim: 2011/09/24 21:14:19 posicao 0
Processamento encerrado.
Realize that the position value is appearing repeated between different threads. In the output posicao should have a different value in each thread that calls the synchronized method.