C# MongoDB Update / Upsert List<Object> to Collection
我正在寻找一种在MongoDB中更新/UPSERT的方法. 有什么办法可以做到这一点,或者我必须使用循环来一个一个一个一个一个? p.s:问题不是在制作能够完成这项工作的方法(一个一个),但我想避免使用MongoDB数据库过多迭代. 这是我目前正在使用的方法: public static void UpdateAll() { var client = new MongoClient("mongodb://server_ip:27017"); var db = client.GetDatabase("M_PROJECT"); var collection = db.GetCollection("products"); //Config.Products is a List that was previously retrieved from the
16 2024-04-24
编程技术问答社区
如何在Citrix中把C#程序的实例限制为每个用户1个
我有一个带有C#代码的Windows表单应用程序(Targeting .NET Framework 4). 在我的开发人员工作站上,此代码可防止我启动该程序的多个实例.但是,QA具有Citrix测试环境,每个用户仍然能够启动多个实例. 如何阻止给定用户在Citrix中运行多个实例? [STAThread] static void Main(string[] args) { bool isFirstInstance; Mutex m = new Mutex(true, "[App name goes here] mutex", out isFirstInstance); if (isFirstInstance) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); A
26 2024-04-23
编程技术问答社区
检测应用程序的另一个实例是否已经在运行
如果已经运行实例,我的应用程序加载时需要略有不同. 我了解如何使用互斥X防止其他实例加载,但这并不能解决我的问题. 例如: 实例1加载,获取sutex. 实例2负载,无法获得互斥品,知道还有另一个实例.到目前为止,一切都很好. 实例1关闭,释放静音. 实例3加载,获得静音,不知道实例2仍在运行. 有什么想法吗?值得庆幸的是,它不需要处理多个用户帐户或类似的内容. (C#,桌面应用程序) 编辑:要澄清,该应用程序不需要仅限于一个实例,只需执行稍有不同的启动操作,如果还有另一个实例已经运行.多个实例是可以的(预期的). 解决方案 这可能会做您想要的.它具有将已经运行的实例转发的不错的功能. 编辑:更新了代码以自动确定应用程序标题. using System; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runt
30 2024-04-18
编程技术问答社区
在不同的分区激活COM+对象
我创建了一个COM+域分区,然后将其映射到Windows 2008服务器计算机并将COM+应用程序导入其中. 我尝试使用以下C#代码来远程从服务器上的该特定分区激活对象: //partition guid Guid guidMyPartition = new Guid("41E90F3E-56C1-4633-81C3-6E8BAC8BDD70"); //parition moniker string uri= "partition:{" + guidMyPartition + "}/new:MyObject"; Type t = Type.GetTypeFromProgID("MyObject", "MyServer"); MyObject obj = (MyObject)Activator.GetObject(t, uri); 但是我得到了这个例外: 无法创建通道接收器以连接到URL'分区:{41E90F3E-56C1-4633-81C3-6E8BAC8BDD70
2 2024-04-17
编程技术问答社区
当该可执行程序的另一个实例启动时,如何更新一个正在运行的应用程序的WinForms控件?
我制作了单个实例应用程序,但是我的问题是,我不知道如何获取第一个打开的FormMain实例并更新表单文本框! 你能帮我吗? static void Main(string[] args) { bool result; Mutex mutex = new System.Threading.Mutex(true, "unique_name", out result); if (!result) { **/* CALL OPENED FORM INSTANCE AND UPDATE TEXTBOX */** return; } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(true); Application.Run(new FormM
14 2024-04-14
编程技术问答社区
检查卸载是否成功
我正在尝试自动化一个安装过程,在该过程中,我在该过程中卸载了以前的版本,并在顶部安装了较新版本.如果卸载成功,我应该如何测试(在Bootstrapper中,在C#中编码)? 这是我目前要启动卸载的方式. Process p = Process.Start("msiexec", /*various switches*/); p.WaitForExit(); 我目前还纠缠着动态多个实例,这确实使我想到了,因此在Wix本身中处理此问题即使不是不可能. 解决方案 而不是通过MSIEXEC调用Windows安装程序,您可以使用Windows Installer API.您可以通过P/Indoke,激活COM接口或Wix的DTF包装库来执行此操作.用于删除产品的特定功能是使用DTF,您可以这样做: Installer.SetInternalUI(InstallUIOptions.Silent); Installer.SetExternalUI(UiHandler, In
30 2024-04-14
编程技术问答社区
限制一个应用程序的多个实例
好吧,所以我创建了我的C#应用​​程序,为其创建了一个安装程序,并在我的计算机上安装了它. 问题是,当用户两次打开应用程序EXE时,将有两个运行应用程序的实例.我只希望该应用程序的一个实例在任何时候运行,我该如何执行此操作? 感谢您的帮助, 解决方案 这样的常见技术是创建一个命名Mutex并检查其在应用程序中的存在. 请参阅 DDJ的代码: class App : Form { Mutex mutex; App() { Text = "Single Instance!"; mutex = new Mutex(false, "SINGLE_INSTANCE_MUTEX"); if (!mutex.WaitOne(0, false)) { mutex.Close(); mutex = null; }
18 2024-04-12
编程技术问答社区
批量处理文件,逐一处理
我有一个批处理文件来压缩PNG文件.当我在批处理上拖放一些文件时,它开始在同一时间处理所有文件.当我尝试使用数百个文件(肯定) 时,它变得毫无用处. 主要部分是类似(简化) START "" /W truepng.exe /out "%~n1_out1.png" %1 START "" /W pngwolf.exe --in="%~n1_out1.png" --out="%~n1_out2.png" 我认为我必须解决"%1"部分. 我正在尝试将批量用于使用4条块的处理文件.想到2种不同的侵犯,都很好. 1. 2.或同时运行最大4" pngwolf.exe"实例(最佳选择) 在我的几次测试中,我开始尝试使用计数器逻辑%1%2%3%4之后. 但是,即使在那个阶段,我也坚持了下来,无法创建一个反系统. 无需询问,确保我是批处理编码的新手.但是,即使是一名出色的设计师,我也需要在批处理上了解更多信息. 感谢任何人都会牵手.希望有一个简单的解决方案我能理解和适应.
24 2024-03-29
编程技术问答社区
Azure平台:扩大实例的规模和减少数量
注意:如果您熟悉Azure定价模型,请跳到"问题"部分. Microsoft将开始为使用Azure平台启动实例托管时间.引用Windows Azure定价页面: 在开发和测试您的应用程序时,开发人员将要删除未用于最小化计算小时计费的计算实例 因此,您认为这不是计算小时,而是正常运行时间您将要收取的费用.阅读了对这个问题在MSDN论坛中: 我可以确认(任何角色的每个实例)计数,并且您拥有的所有时间都有主动计数(无论它们有多少"活动").对于具有两个Web角色实例和两个工人角色实例的应用程序,您将为四个实例收费 每个实例每小时$ 0.12,使用n实例的应用平均为24*30*0.12*n/月=〜$ 86/个月. 当您考虑到如果您想要99.9%的正常运行时间服务级别协议申请. 因此,一个小型的计算机 - 功率性网站可能不是Azure的目标市场.但是对于批处理过程,负担可能会消失. 问题 仅在计算机和"计算时间" 计费方面说话,Azure对于每月仅运
12 2024-03-29
编程技术问答社区
等待批处理文件中异步运行的多个应用程序完成
有一个简单的Windows批处理文件,该文件运行多个应用程序: start app.exe param1 start app.exe param2 是否有一种方法可以同时(上面)运行它们,并等待他们俩完成其他动作 - 类似C# 之类的操作 Task.WhenAll(tasksList.ToArray()); /* Process tasksList.Result */ ? /Wait Switch在这里无济于事,如果特定实例仍在运行. 解决方案 我想这个问题与等待并行批处理脚本 .EXE处理要完成,而不是批处理脚本.但是解决方案几乎相同. 您必须在主批处理脚本中实例化某种形式的轮询.您可以通过重定向有效地创建锁定文件.锁定文件一直锁定,直到该过程终止.您的批处理脚本投票,检查是否可以打开所有锁定文件.一旦成功,它就会知道所有过程已经结束. 以下解决方案中唯一的显着差异是START直接启动.exe而不是通过CMD /C启动批处理.我还了解到,(cal
12 2024-03-29
编程技术问答社区
一次性使用多个标签的Selenium
我正在与硒合作,想知道是否可以一次使用多个标签?我不想使用多个浏览器实例(即2个IE双关语副本).如果不可能,那么如何在单个选项卡之间进行切换,这些将依次运行? 谢谢! 解决方案 如果有一个链接打开新窗口/选项卡,则可以使用driver.switchTo().window(); 但是,如果您想在多个窗口上运行某些内容,则建议使用多个web驱动器实例.它容易管理要容易得多,并且得到了支持(打开一个新的选项卡/窗口时有解决方法,例如按下打开新窗口的热键,但不支持它们). 如果您想拥有多个线程全部在同一驱动程序实例上作用,但是不同的选项卡,这是不可能的. 其他解决方案 可以在单个选项卡之间切换而不具有多个浏览器实例. Web驱动程序如何处理不同的窗口以及如何处理不同的选项卡. 案例1: 如果有多个窗口,则以下代码可以帮助: //Get the current window handle String windowHandle = driver.
36 2024-03-21
编程技术问答社区
Angular - 通过提交表单将一个新的组件实例添加到显示中,动态地加载同一组件的多个实例。
问题更新链接 ./p> 问题 我正在尝试动态加载同一组件的多个实例,当用户提交表单时,将新组件添加/加载到屏幕上.其背后的想法是,用户可以提供有关随后在创建的组件的特定实例上显示的表单的详细信息. 我最初的想法是要拥有某种数据结构,例如键对值的数组或映射,当用户提交表单时,我可以将组件的新实例与表单数据一起添加到我的数据结构中.然后,Angular可以以某种方式显示位于数据结构中的每个组件的每个实例,如下图: 重要的是要注意,该表单实际上是其模态对话框形式的独立组件.按下绿色添加状态框按钮时,打开此表单对话框,然后用户可以提交表单,并(希望)能够使用来自状态框组件的新实例,并使用从提交的表格. 但是,这很困难,目前我在上面的屏幕截图中实现此目标的方法是仅在 app.component.html 中单独显示每个组件,这根本不是动态的并且没有用户控制:
安卓系统中作为视频编码器使用的MediaCodec的多个实例
是否可以使用两个Android MediaCodec实例作为视频编码器同时编码两个视频? 我知道MediaCodec本身可以具有多个实例,用于视频/音频编码/解码.但是,除了性能的影响外,还对硬件/Android版本有任何限制吗? 更具体地说,如果仅考虑Android版本4.3或更高版本,则视频编码器的多个实例有效或仍然依赖于设备? 解决方案 根据我的经验,它完全取决于设备.并且有一些设备一次仅支持一个视频编码器的实例
24 2024-02-17
编程技术问答社区
只在Touchwiz上打开安卓应用的多个实例
我最近一直在研究Android设备的应用程序 - 我注意到一个令人困惑的问题,仅在运行Samsung TouchWiz的设备上发生! 当应用程序在 touchwiz 设备上运行时,错误会发生.在应用程序在前景时,可以通过按"后背"按钮来复制该错误,然后从主屏幕(或其他图标可能是任何地方)再次启动它.在多任务菜单中查看,很明显系统启动了应用程序的第二个实例!第二个实例完全独立于第一次实例,而两个实例似乎并未以任何方式连接. 我认为我可以通过向应用程序表现出来的单个固定来防止这种行为,但这似乎并没有解决问题. 清单:
10 2024-02-16
编程技术问答社区
Android-如何创建一个活动的多个实例?
我想知道可以在Android中创建多个活动的多个实例吗? 我目前使用以下代码开始自己的incall屏幕进行VoIP测试: public void initInCallScreen(String pName, String phoneNumber, int contactID, boolean callDirection, int lineID){ //starts in callScreen dialog final Intent myIntent = new Intent(context, CallDialogActivity.class); myIntent.putExtra("NAME", pName); myIntent.putExtra("NUMBER", phoneNumber); myIntent.putExtra("ID", contactID); myIntent.putExtra
26 2024-02-12
编程技术问答社区
安卓-启动多个活动
是否可以一次开始多个活动?我的意思是,从Main创建3个活动中,最后一个活动将是可见的?到目前为止,我只能创建一个活动. 谢谢 解决方案 您可能需要类似的内容才能在用户单击通知以显示一些新添加的内容之后深入应用程序. Intent i = new Intent(this, A.class); i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(i); Intent j = new Intent(this, B.class); j.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(j); Intent k = new Intent(this, C.class); startActivity(k); 通过这种方式,您可以同时开始活动A,B和C,并抑制向A和B的过渡.例如,方法调用(ongreate等)对logcat.它有助于了解
10 2024-02-12
编程技术问答社区
安卓:文字转语音的两个实例工作非常缓慢
我需要在我的Andorind应用中实现功能,该应用程序允许在当前的activitive中播放两种不同的合成语言 - 例如,有两个按钮说英语,并说法语 我试图通过以下两种方式进行操作,但是它们两个都无法效法,因为声音播放之前有很长的延迟: 第一种方法:创建TTS的单个实例,并通过setLocale方法更改语言,具体取决于必须播放的语言.不幸的是,通过setlocale在语言之间切换很耗时,这对按钮单击后会影响反应 第二种方法:为各自的语言创建两个TT的实例.不幸的是,延迟也发生在这里,第一个解决方案之间没有区别. 您可以帮助解决这个烦人的问题吗? 解决方案 在任何用户交互之前,如何等待两个TTS发动机在应用程序开始时完成初始化(通过创建 onInitlistener 和等待 - 例如,用信号量等待 - 直到称为oninit()方法)用户可以在应用按钮引入的应用程序中,您已经初始化了两个引擎? 其他解决方案 我通过在主题线程以外的线程上一起创建这些实例来解
6 2024-02-04
编程技术问答社区
退出时如何保存你的Activity'状态?安卓系统
我有一个带有文本输入的基本应用,一个旋转器输入和第二个旋转器输入,其数组取决于选项菜单中更改的设置. 当前,当我在应用程序中按回家或按返回时,我要么返回桌面,要么通过我最近放入的旧输入循环. 如何防止我的应用程序打开多个实例,以便在任何给定时间只有一个实例,然后如何保存输入的数据以及在我的选项菜单中选择的设置? 我对Java有点陌生,所以如果这是一个简单的问题,我深表歉意. 解决方案 在您的行为中,OnsaveInstancestate和OnrestoreInstancestate占领了.这些方法将允许您将数据保存到 bundleddle 您也可以保存数据到 persences .在我的所有应用程序中,我都覆盖了OnSaveInstancestate和OnrestoreInstancestate,以将值保存和加载值加载到捆绑包中.我还将数据保存到Onresume中的Onpause和加载首选项中的首选项.同样在ongreate中(捆绑savedinstancestat
24 2024-02-01
编程技术问答社区
多个滑块,控制所有滑块的按钮
我正在尝试使用此滑块:/a> 我需要在页面上有多个滑块,也许还有10个滑块.它用于属性清单页面,这是一个非常轻的滑块. 当前按下下一步时,它将为每个滑块滑动图像.我知道这是一个ID问题,但是是否有一种简单的方法可以解决此问题,而不必拥有数十个不同的ID? 更新! 这是我更新的笔/lekba ,但似乎每个滑块都在UL 中加载了最后一个Li 解决方案 我在想这样的事情... function moveRight(slider) { slider = $(slider); slider.find('ul').animate({ left: - slideWidth }, 200, function () { slider.find('ul li:first-child').appendTo(slider.find('ul')); slider.find('ul').css('left',
32 2024-01-18
编程技术问答社区