.net cs程序仅启动一次的方法

.NET6 WebApi第1讲:VSCode开发.NET项目、区别.NET5框架【两个框架启动流程详解】 运行应用程序。 阅读详情

方法一.

private Boolean IsFirstInstance()
{
if (System.Diagnostics.Process.GetProcessesByName(Application.ProductName).Length
> 1)
{
return false;
}
return true;
}

方法二

    private static bool HaveOtherInstance()
        {
            try
            {
                EventWaitHandle globalHandler = EventWaitHandle.OpenExisting("iReaper");
                globalHandler.Set();
                return true;
            }
            catch (WaitHandleCannotBeOpenedException)
            {
                EventWaitHandle global = new EventWaitHandle(true, EventResetMode.AutoReset, "iReaper");
                Thread monitor = new Thread(new ThreadStart(delegate()
                {
                    while (true)
                    {
                        global.WaitOne();
                     }
                }));
                monitor.IsBackground = true;
                monitor.Start();
                GC.KeepAlive(monitor);
                return false;
            }
        }

 

方法三

<!--StartFragment-->public static Process RunningInstance() 
{ 
     Process current = Process.GetCurrentProcess();
     Process[] processes = Process.GetProcessesByName (current.ProcessName);
      //Loop through the running processes in with the same name

      foreach (Process process in processes)
       { 
          //Ignore the current process
            if (process.Id != current.Id)
           {
                //Make sure that the process is running from the exe file.
                 if (Assembly.GetExecutingAssembly().Location.Replace("/", "//") == current.MainModule.FileName)
                 {
                     //Return the other process instance.
                     return process;
                 }
            }
       }
       //No other instance was found, return null.
       return null;
}

分析:方法一和方法三从本质上说 是一样的,是在当前运行进程中是否存在同名或地址相同进程,若没有则说明程序第一次运行。方法二不同,是在当前进程中另运行一个模块,同时设置一个线程同步变量。程序运行时,查看是否存在某一名称变量。

深入理解.NET Core的启动流程与Program.cs配置 本文深入剖析了.NET Core应用的启动流程演变与实现细节: 启动流程变迁:从传统分离式Program/Startup到.NET 6+顶级语句的极简模式,通过对比表格和流程图清晰展示各版本差异。 核心组件解析: 详细拆解WebApplicationBuilder的架构设计 配置系统多源加载机制及优先级 服务容器的三种生命周期及应用场景 中间件开发实践: 标准中间件管道构建顺序 自定义性能监控中间件完整实现示例 装饰器模式等高级服务注册技巧 环境配置策略: 开发/生产环境差异化配置方案 条件服务注册等实用模 阅读详情

相关推荐

ASP .NET Core 的运行机制和启动(转)

ASP .NET Core 的运行机制和启动

ppp17的博客 2307

在 ASP.NET Core 应用程序启动时运行代码的 3 种方法

在应用程序开始服务Web请求之前,所有类型的启动任务都可以直接从Program或Startup类执行。长时间运行的后台任务应该由托管服务启动和停止。开发者可以使用接口订阅OnStarted事件,该事件在应用宿主完全配置并启动后发布。...

极客神殿 4374

使用VScode编译AMI代码

我现在了解到的和拿到的code,都是基于AMI的code,一般的编译AMI都需要搭配使用AMI的编译环境Veb,而Veb用到现在,一直都觉得有点卡顿,浏览代码的体验也比VScode差很多。在这之前还要,考虑设置TOOLS_DIR和EWKE_DIR的环境变量,因为在Veb中是可以通过设置自动设置的,但是VScode里面没用设置环境变量的选项。这里可以看出,Veb工具栏中的Build和Rebuild All的命令对应这里的make和make rebuild,也就是说Veb是调用此命令进行编译的。

Dodijd的博客 1881

C#.NET WINFORM应用程序中控制应用程序只启动一次

using System; using System.Threading; using System.Collections.Generic; using System.Windows.Forms; namespace ArresterSerialPort {     static class Program     {         ///        

u011696342的专栏 604

睿尔曼超轻量仿人机械臂--机械臂接口介绍

本文介绍了睿尔曼超轻量仿人机械臂的控制器接口及末端接口。

realman_Rop的博客 3437

绕过限制?实测修改UA在PC端运行微信小程序的可行性及风险

本文探讨了通过修改User-Agent(UA)在PC端运行微信小程序的技术可行性及风险。分析了小程序设备限制的技术原理,包括`wx.getSystemInfo`API和UA检测机制,并提供了多种修改方案及其局限性。同时强调了潜在的安全和法律风险,推荐使用官方模拟器或安卓模拟器等更安全的替代方案。

weixin_30879169的博客 363

C#.NET客户端CS程序 只能启动一次

using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using Microsoft.VisualBasic.ApplicationServices; namespace MyQuery.MyIE { static class Program ...

web开发自学 369

别再用Excel画波特图了!用LTspice免费仿真软件,5分钟搞定电路传递函数分析

本文介绍了如何利用LTspice免费仿真软件高效绘制波特图,解决传统Excel绘图效率低、精度不足的问题。通过详细的操作步骤和实战案例,展示LTspice在电路传递函数分析中的自动化计算、专业级精度和完整特性展示等优势,帮助工程师快速完成频率响应分析。

weixin_42524226的博客 461

.Net中如何限制执行程序只能运行一次和如何读写注册表

最近在做一个MSN风格的自动上传报文的托盘程序时,需要限制程序只能运行一次,找了下,还好在其他项目中找到了相关的资料,代码如下:        ///         /// 应用程序的主入口点。        ///         [STAThread]        static void Main()        {            Application.EnableVisual

牛牛工作室 913

Halcon实战:5分钟搞定灰度图转热力图(附完整代码)

本文提供了一份Halcon实战指南,详细讲解如何在5分钟内将灰度图转换为直观的热力图。通过核心代码演示了利用HSV颜色模型进行色彩映射的原理与步骤,包括图像归一化、通道构建与空间转换,并附赠了深度图可视化等进阶应用技巧,帮助工程师快速提升图像分析效果。

weixin_29240343的博客 282

手把手教你用OPA运放和MOS管搭建恒流源电路(附完整电路图)

本文详细介绍了如何使用OPA运放和MOS管搭建高精度恒流源电路,涵盖核心元器件选型、电路设计、工作原理及实际搭建步骤。通过负反馈控制机制和MOS管工作区设置技巧,实现稳定的电流输出,适用于LED驱动、电池充电等场景。附完整电路图和调试技巧,助您快速掌握恒流源设计。

weixin_29239279的博客 535

c#: 设置程序只能运行一次

环境: window 10 .net framework4.5 winform 参照: C#设置一个winform程序一次只能运行一个 直接看代码: using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Runtime.InteropSe...

火焰 2704

海上风电经柔性直流送出系统的阻抗建模与稳定性分析

摘要 本文针对海上风电经柔性直流送出系统的稳定性问题,提出了一种基于阻抗建模的分析方法。研究建立了直驱永磁同步发电机(PMSG)的序阻抗解析模型和模块化多电平换流器(MMC)的交流侧小信号阻抗模型,通过Matlab/Simulink平台实现了完整的仿真验证系统。采用谐波线性化原理和端口阻抗分析法,揭示了风电机组与柔直换流器之间的阻抗匹配特性对系统稳定性的影响规律。研究结果表明,控制参数设置会显著改变系统阻抗特性,进而影响稳定裕度。文中提出的阻抗建模方法为分析海上风电柔直送出系统的宽频振荡问题提供了有效工具,

huanghm88的专栏 232

Spark.NET环境配置管理:Env.cs与EnvManager.cs的实战应用

在现代.NET应用开发中,环境配置管理是确保应用在不同环境(开发、测试、生产)中正确运行的关键环节。Spark.NET框架通过`Env.cs`和`EnvManager.cs`两个核心文件,提供了简单而强大的环境变量处理方案,帮助开发者轻松实现配置的隔离与管理。本文将深入探讨这两个工具类的实战应用,带你掌握Spark.NET环境配置的终极技巧。 ## 环境配置核心组件解析 Spark.NET的环

gitblog_00449的博客 1026

电子元器件选型与实战应用—01 电阻选型

大家好, 我是记得诚。这是《电子元器件选型与实战应用》专栏的第一篇文章,今天的主角是电阻,在每一个电子产品中,都少不了电阻的身影,其重要性不言而喻。

记得诚 3537

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ASP.NET Core 应用程序的启动与配置:Program.cs 文件的全面解析

Program.cs配置应用程序的主机和服务,包括加载配置、设置日志记录、启用监控(如 Application Insights)、配置 API 版本控制和 Swagger 文档。构建 HTTP 请求管道,配置中间件以处理请求、路由、授权和异常处理。启动应用程序,使其开始监听和处理 HTTP 请求。通过这些步骤,Program.cs确保了应用程序的正确初始化和运行,提供了良好的开发和生产环境支持。

听我俩天的博客 2371

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

.Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置

.Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置

weixin_42199478的博客 3162

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

.NET Core学习——Startup.cs

ASP.NET Core 程序启动过程如下 目录 Startup 类 Configure() 方法 中间件 使用中间件 Configure 方法 的参数 IApplicationBuilder Extension Methods(拓展方法)--微软提供的中间件 1, Startup 类 ASP.NET Core 应用使用Startup 类,按照约定命名为Startup。...

Abbey_qi的博客 1291

ASP.NET Global.asax.cs的作用

[ASP.NET 1.1]Global.asax.cs中的方法的含义 跟Request有关的放到后面一起说,先说其他的5个。 Application_Init:在每一个HttpApplication实例初始化的时候执行。 Application_Disposed:在每一个HttpApplication实例被销毁之前执行。 Application_Error:所有没有处理的错误都会导致这...

业精于勤,行成于思 1087

AspNet Core Web 应用程序的启动 当项目中 没有Startup.cs 类如何设置启动 配置等等...

感叹: Core 16年6月1号 在中国宣布上线 到现在已经快经历两年时间了,目前版本已经到了2.0 就目前的前景来看,个人感觉 到2020年才可能有所起色,等到Core更成熟 个人看法:在.net这条路上总感觉后劲不足,市场好像越来越小了。不过学习还是要学的,毕竟很喜欢 c#   (1)有关怎么创建Core MVC/API 这里就不说了,前段时间的博客中有说过:这...

weixin_30538029的博客 2560

L2CS-Net 开源项目教程

L2CS-Net 开源项目教程 项目介绍 L2CS-Net 是一个用于凝视估计和跟踪的开源项目,基于 PyTorch 实现。该项目通过深度学习技术,能够从图像中准确估计出人眼的注视方向。L2CS-Net 适用于多种应用场景,包括人机交互、虚拟现实和增强现实等。 项目快速启动 环境准备 安装 Python 3.7 或更高版本。 克隆项目仓库: git clone https://github.co...

gitblog_01180的博客 736

【亲测免费】 L2CS-Net 项目使用教程

L2CS-Net 项目使用教程 1. 项目的目录结构及介绍 L2CS-Net 是一个用于凝视估计和跟踪的开源项目。以下是项目的目录结构及其介绍: L2CS-Net/ ├── data/ │ └── ... # 数据文件 ├── models/ │ └── ... # 预训练模型文件 ├── src/ │ ├── __init__.py │ ├── pipeline.py # ...

gitblog_01016的博客 760

也谈Asp.Net编译错误CS0433 类型XXX同时存在于…

一直好好的Asp.Net项目,晚上突然出现这个问题,于是搜索了一下,看到有人给出了比较好的解决办法: http://www.cnblogs.com/chinhr/archive/2008/08/08/1263508.html 出现这种错误大概有三种情况: 1、ASPX页面,一个*.ASPX,对应着一个*.cs文件,两者其实是一个文件,通过两者实现...

weixin_33670713的博客 917

iis发布.net网站 编译器错误信息: CS0016: 未能写入输出文件 解决方法

一.错误信息提示如下: 编译器错误信息: CS0016:未能写入输出文件: '*:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\*\*.dll'--拒绝访问." 原因1:权限问题,访问权限问题。 解决方法1:为用户NETASP(NETWORK SERVICE [window 2003])设置windo

leai_23的专栏 1467

Faker-CS 项目使用教程

Faker-CS 项目使用教程 1. 项目介绍 Faker-CS 是一个 C# 版本的 Faker 库,它是对 Ruby Faker gem 的移植。Faker-CS 的主要功能是生成各种类型的假数据,如姓名、地址、电话号码等,非常适合用于测试和开发阶段的数据填充。该项目支持多种 .NET 框架版本,包括 .NET Framework 3.5 SP1、.NET Framework 4.0、Silv...

gitblog_01016的博客 714
下一篇: 判断网络是否可连接的方法
ymabcd
博客等级 码龄19年 2粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值