【进程线程与同步】5.2 避免在同一机器上运行同一程序的多个实例

using System.Diagnostics;
class Program
{
    static void Main()
    {
        if (TestIfAlreadyRunning())
        {
            System.Console.WriteLine("This app is already running!");
        }
        else
        {
            // Here, the entry point of the application.
        }
    }
    static bool TestIfAlreadyRunning()
    {
        Process processCurrent = Process.GetCurrentProcess();
        Process[] processes = Process.GetProcesses();
        foreach (Process process in processes)
        {
            if (processCurrent.Id != process.Id)
            {
                if (processCurrent.ProcessName == process.ProcessName)
                {
                    return true;
                }
            }
        }
        return false;
    }
}
时间: 2024-08-01 04:42:13

【进程线程与同步】5.2 避免在同一机器上运行同一程序的多个实例的相关文章

如果我想在vs2010上运行mpi程序时控制用多少个进程运行,应该怎么做?

问题描述 如果我想在vs2010上运行mpi程序时控制用多少个进程运行,应该怎么做? 是在vs2010上直接控制,不是在mpich2上通过wmpiexe.exe程序控制,十分感谢!......... 解决方案 用多个进程运行的关键是进程间的数据交换和同步,这方面你可以用管道或者RPC来实现.

【进程线程与同步】5.4 System.Threading.Interlocked 为多个线程共享的变量提供原子操作

using System; using System.Threading; internal class Program { private static long _counter = 1; private static void Main() { //下面程序显示两个线程如何并发访问一个名为counter的整形变量,一个线程让他递增5次,一个让他递减5次 Console.WriteLine("原始值:{0}", _counter); var t1 = new Thread(F1);

【进程线程与同步】5.3 创建与联接线程

using System.Threading; class Program { static void f1() { System.Console.WriteLine("f1"); } void f2() { System.Console.WriteLine("f2"); } static void f3(object obj) { System.Console.WriteLine("f3 obj = {0}", obj); } static v

12篇学通C#网络编程——第一篇 基础之进程线程

       在C#的网络编程中,进程和线程是必备的基础知识,同时也是一个重点,所以我们要好好的掌握一下. 一:概念           首先我们要知道什么是"进程",什么是"线程",好,查一下baike.   进程:是一个具有一定独立功能的程序关于某个数据集合的一次活动.它是操作系统动态执行的基本单元,            在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元.   线程:是"进程"中某个单一顺序的控制流.    关

Java基础-23总结多线程,线程实现Runnable接口,线程名字获取和设置,线程控制,线程安全,同步线程

你需要的是什么,直接评论留言. 获取更多资源加微信公众号"Java帮帮" (是公众号,不是微信好友哦) 还有"Java帮帮"今日头条号,技术文章与新闻,每日更新,欢迎阅读 学习交流请加Java帮帮交流QQ群553841695 分享是一种美德,分享更快乐! 1:多线程(理解) (1)多线程:一个应用程序有多条执行路径 进程:正在执行的应用程序 线程:进程的执行单元,执行路径 单线程:一个应用程序只有一条执行路径 多线程:一个应用程序有多条执行路径 多进程的意义? 提高

Thread and Sync In C# (C#中的线程与同步)

Don't believe everything they've told you. Threads in C# are actually pretty easy.   别相信别人告诉你的所有的事.其实C#中的线程是很简单的.   A thread is an encapsulation of the flow of control in a program. you might be used to writing single-threaded programs - that is, pro

多线程编程之四——线程的同步

八.线程的同步 虽然多线程能给我们带来好处,但是也有不少问题需要解决.例如,对于像磁盘驱动器这样独占性系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就有可能出现两个线程同时对磁盘驱动器进行操作,从而出现操作错误:又例如,对于银行系统的计算机来说,可能使用一个线程来更新其用户数据库,而用另外一个线程来读取数据库以响应储户的需要,极有可能读数据库的线程读取的是未完全更新的数据库,因为可能在读的时候只有一部分数据被更新过. 使隶属于同一进程的各

多线程编程之四 ---线程的同步

下载源代码 八.线程的同步 虽然多线程能给我们带来好处,但是也有不少问题需要解决.例如,对于像磁盘驱动器这样独占性系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就有可能出现两个线程同时对磁盘驱动器进行操作,从而出现操作错误:又例如,对于银行系统的计算机来说,可能使用一个线程来更新其用户数据库,而用另外一个线程来读取数据库以响应储户的需要,极有可能读数据库的线程读取的是未完全更新的数据库,因为可能在读的时候只有一部分数据被更新过. 使隶属于

Java线程:线程的同步

一.同步问题提出 线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏. 例如:两个线程ThreadA.ThreadB都操作同一个对象Foo对象,并修改Foo对 象上的数据. public class Foo { private int x = 100; public int getX() { return x; } public int fix(int y) { x = x - y; return x; } } public class MyRunnable implements