相关疑难解决方法(0)

在C#中使用Global Mutex有什么好的模式?

Mutex类被误解了,而Global mutex则更是如此.

在创建全局互斥锁时使用什么是好的,安全的模式?

一个会起作用的

  • 无论我的机器所在的语言环境如何
  • 保证正确释放互斥锁
  • 如果未获取互斥锁,则可选择不会永久挂起
  • 处理其他进程放弃互斥锁的情况

c# concurrency mutex

365
推荐指数
5
解决办法
10万
查看次数

使用Mutex运行应用程序的单个实例

为了只允许运行应用程序的单个实例,我正在使用互斥锁.代码如下.这是正确的方法吗?代码中是否有任何缺陷?

当用户第二次尝试打开应用程序时,如何显示已在运行的应用程序.目前(在下面的代码中),我只是显示另一个实例已在运行的消息.

    static void Main(string[] args)
    {
        Mutex _mut = null;

        try
        {
            _mut = Mutex.OpenExisting(AppDomain.CurrentDomain.FriendlyName);
        }
        catch
        {
             //handler to be written
        }

        if (_mut == null)
        {
            _mut = new Mutex(false, AppDomain.CurrentDomain.FriendlyName);
        }
        else
        {
            _mut.Close();
            MessageBox.Show("Instance already running");

        }            
    }
Run Code Online (Sandbox Code Playgroud)

c# mutex

22
推荐指数
2
解决办法
5万
查看次数

如何检查应用程序是否正在运行

我只是想检查是否有任何所需的应用程序已经运行

例如,假设我有VLC或iTunes或任何Windows应用程序,那么如果它运行与否,我怎么能通过c#代码弄清楚它.

c# process

10
推荐指数
1
解决办法
5万
查看次数

如何检查我的程序是否已在运行?

我试着这样做:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Diagnostics;
using DannyGeneral;

namespace mws
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            try
            {
                if (IsApplicationAlreadyRunning() == true)
                {
                    MessageBox.Show("The application is already running");
                }
                else
                {
                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);
                    Application.Run(new Form1());
                }
            }
            catch (Exception err)
            {
                Logger.Write("error " + err.ToString());
            }
        }
        static bool IsApplicationAlreadyRunning()
        {
            string proc = Process.GetCurrentProcess().ProcessName;
            Process[] processes = Process.GetProcessesByName(proc); …
Run Code Online (Sandbox Code Playgroud)

.net c# winforms

5
推荐指数
1
解决办法
9587
查看次数

以编程方式,该应用程序如何检测程序是否已准备好输入

我需要构建一个小型C#应用程序来测量可定义应用程序的启动时间.我找到了这个免费工具:

http://www.passmark.com/products/apptimer.htm

这正是我需要的,但我被要求创建一个更具公司特定的内部版本,因​​为我们需要数据库日志记录和其他一些东西.

我理解如何复制除"输入空闲"之外的所有功能.我试图搜索这个术语,但我没有找到任何有用的参考.任何人都可以指出我正确的方向检查应用程序"输入空闲"状态?

.net c# windows

3
推荐指数
2
解决办法
1310
查看次数

标签 统计

c# ×5

.net ×2

mutex ×2

concurrency ×1

process ×1

windows ×1

winforms ×1