public class SoftHelper { ///<summary> /// 该函数设置由不同线程产生的窗口的显示状态 /// </summary> /// <param name="hWnd">窗口句柄</param> /// <param name="cmdShow">指定窗口如何显示.查看允许值列表,请查阅ShowWlndow函数的说明部分</param> /// <retu…
原创文章,转载请注明出处:http://huyanping.sinaapp.com/?p=222 作者:Jenner 一.场景描写叙述: 近期我们一块业务.须要不断的监听一个文件夹的变化.假设文件夹中有文件,则启动PHP脚本处理掉. 最初的方案是使用crontab运行sh脚本,脚本大概例如以下: SOK=`ps -ef |grep /www/sender.sh | grep -v grep|wc -l` if [[ "$SOK" < "2" ]];then f…
对于一个完整的程序系统,一个日志记录是必不可少的.可以用它来记录程序在运行过程中的运行状态和报错信息.比如,那些不想通过弹框提示的错误,程序执行过程中捕获的异常等. 首先,在你的解决方案中,适当的目录中新建一个类,比如 LogManager: 编写如下代码: /// <summary> /// 日志管理 /// </summary> public class LogManager { private string _logDir; // 日志文件存放目录 private stati…
Mutex不仅提供跨线程的服务,还提供跨进程的服务.当在构造函数中为Mutex指定名称时,则会创建一个命名了的Mutex.其他线程创建Mutex时,如果指定的名称相同,则返回同一个互斥体,不论该线程位于哪个进程或者应用程序域中. 使用命名互斥体的一个例子是创建Singleton应用程序,即只能打开一个实例的应用程序.显然,我们创建的控制台应用程序是可以同时打开多个实例的.下面的代码使用Mutex实现了只能同时开启一个Console控制台程序. string asm = Assembly.GetE…
1.源起: KV项目下载底层升级包,老是报出升级文件占用问题,反复分析,不得其所. 今天突然发现同时启动多个升级程序实例,分析认为安装包同时被调用多次,引发实例访问文件冲突,导致此问题. 安装程序由Inno Setup制作,遂找其解决方案,最先想到的是互斥体,就由此开始! 2.AppMutex [Setup] AppMutex=MyAppMutex 安装程序Setup段,此互斥变量,会在安装程序启动时检测是否有此互斥体的程序在运行,若有则提示: 通常在程序中置同名互斥体,此处判断,可避免程序在运…
public class Test { private static Test test = new Test(); private Test(){}//构造方法私有化 private static Test test(){ return test; } public void run(){ System.out.println("run"); } public static void main(String[] args) { Test s = Test.test(); s.run(…
单例:整个程序只创建一次,全局共用. 单例的创建 // SharedPerson.h 文件中 + (instancetype)share; // SharedPerson.m 文件中 static SharedPerson *_person; + (instancetype)allocWithZone:(struct _NSZone *)zone{ static dispatch_once_t predicate; dispatch_once(&predicate, ^{ _person = […
// 在一个对象需要重复使用,并且很频繁时,可以对对象使用单例设计模式 // 单例的设计其实就是多alloc内部的allocWithZone下手,重写该方法 #pragma Person.h文件 #import <Foundation/Foundation.h> @interface Person : NSObject <NSCopying,NSMutableCopying> + (instancetype)sharePerson; // 给类提供一个创建单例对象的类工厂方法 @e…
关于 面向对象的设计模式 对于面向对象的设计模式,想必大家并不陌生吧. 纵观23种设计模式中,数单例模式(Singleton)和工厂模式(Factory Method)最为熟悉和基础吧.当然,本文总结Singleton模式,对于其他设计模式不做叙说. Singleton模式,即单例模式.顾名思义,主要用于做应用程序的资源共享控制.用途很多⋯⋯ 实质为,单例是在程序声明周期里 有且仅有 被实例化过一次的类.为确保实例化的唯一,利用类的 类(static)方法来生成和访问对象. 至此,你便可以在程序…
在之前的帖子里聊过状态管理有多痛苦,有时这是不可避免的.一个状态管理的例子大家都很熟悉,那就是单例.使用Swift时,有许多方法实现单例,这是个麻烦事,因为我们不知道哪个最合适.这里我们来回顾一下单例的历史,看一看在Swift中如何正确地实现单例. 如果你想直接看看Swift中单例的正确实现方式,直接跳到帖子最后即可. 往事回忆之ObjC单例 Swift是Objective-C的一种自然演变,它用如下的方式实现单例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16…
参考:http://blog.yangyubo.com/2009/06/04/best-cpp-singleton-pattern/ 索引 静态化并不是单例 (Singleton) 模式 饿汉模式 懒汉模式 (堆栈-粗糙版) 懒汉模式 (局部静态变量-最佳版) 范例代码和注意事项 (最优实现) 扩展阅读 参考资料 我非常赞成合理的使用 设计模式 能让代码更容易理解和维护, 不过我自己除了简单的 单例 (Singleton) 模式 外, 其它都很少用 :-) 可耻的是, 直到前段时间拜读了 C++…
原文地址 原文地址2 Python中的单例模式的几种实现方式的及优化 阅读目录(Content) 单例模式 实现单例模式的几种方式 1.使用模块 2.使用装饰器 3.使用类 4.基于__new__方法实现(推荐使用,方便) 5.基于metaclass方式实现 相关知识 实现单例模式 回到顶部(go to top) 单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对…
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;} th{border: 1px solid gray; padding: 4px; background-color: #DDD;} td{border: 1px solid gray; padding: 4px;} tr:nth-child(…
1.包和访问权限修饰符 1.1 包 为什么要导包? 将字节码文件(.class)文件进行分类存放 --->包 其实就是文件夹 import java.util.Arrays; 包的划分规则 方案1 按照功能划分 增删改查 CRUD www.qf.cm cn.qf.功能 cn.qf.add AddStudent.java AddTeacher.java cn.qf.delete DeleteStudent.java DeleteTeacher.java cn.qf.update UpdateStu…
原文:DevExpress Winform使用单例运行程序方法和非DevExpress使用Mutex实现程序单实例运行且运行则激活窗体的方法 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u012097590/article/details/92806194 网上关于C#单例运行程序的方法都是比较简单,有些甚至是无法实现功能的,不知道他们试没试过就发帖,因为自己之前都是用第三方控件Dev…
不少应用程序有单一实例的需求,也就是同时只能开启一个实例(一般也就是一个进程). 实现的方式可能有判断进程名字,使用特殊文件等等,但是最靠谱的方式还是使用系统提供的 Mutex 工具. Mutex是互斥体,命名的互斥体可以跨进程使用,所以可以用以实现程序单一实例这个需求.相关的例子网上应该不少,不过很多给出的例子中并没有注意到一些细节,这里就完整总结下. Mutex 需要一个名字,这个名字需要唯一,一般的方式是使用一个固定的 GUID 作为名字. 对于 .NET 应用,可以通过 Assembly…
一介绍 通过编写一个QSingleApplication类,来实现Qt程序的单例化,原文的作者是在Windows Vista + Qt4.4 下实现的,不过应用在其他平台上是没问题的.(本文是我在http://www.qtcentre.org/wiki/index.php?title=SingleApplication上看到的) 二代码 方案一:使用Qt中的QSharedMemory,QLocalServer和QLocalSocket实现(不过需要在你的.pro里加上QT += network)…
建议107:区分静态类和单例 有一种观点认为:静态类可以作为单件模式的一种实现方式.事实上,这是不妥当的.按照传统的观点来看,单例是一个实例对象.而静态类并不满足这一点.静态类也直接违反面向对象三大特性的两项:继承和多态. 无法让一个静态类从其它类型继承的实例如下: interface ISample { } static class SampleClass:ISample { } 上面代码编译直接通不过.同时,已不能让静态类作为参数和返回值进行传递,如下所示: static void Samp…
建议105:使用私有构造函数强化单例 单例指一个类型只生成一个实例对象.单例的一个简单实现如下所示: static void Main(string[] args) { Singleton.Instance.SampleMethod(); } public sealed class Singleton { static Singleton instance = null; public static Singleton Instance { get { return instance==null…
VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)-软件开发-鸡啄米 http://www.jizhuomi.com/software/141.html   上一讲中讲了VS2010和MSDN如何安装,相信大家都已经安装好了.这一讲给大家一个简单的例子,演示如何生成单文档应用程序框架. 解决方案与工程 鸡啄米在VS2010的使用介绍中已经讲了解决方案与工程的概念,这里再重提一下.每个应用程序都作为一个工程来处理,它包含了头文件.源文件和资源文件等,这些文件通过工程集中管理.…
使Qt应用程序能够单实例运行的典型实现方法是使用共享内存实现.该方法实现简单,代码简洁. 但有一个致命缺陷:共享内存(QSharedMemory)实现的单程序运行,当运行环境是UNIX时,并且程序不幸崩溃,会导致共享内存无法释放,从而无法重新运行程序! 所以应该寻找其他的使Qt应用程序能够单实例运行的方案.于是找到LocalSocket和LocalServer通讯方案(据说Qt官方商业版的QSingleApplication的原理好像跟这个差不多). “要用到Qt的QLocalSocket,QL…
原文:WPF:如何实现单实例的应用程序(Single Instance) 好吧,这是我将WPF与Windows Forms进行比较的系列文章的第四篇,讨论一下如何实现单实例(single instance) 先来看第一种最简单粗暴的做法: 检测进程名,如果名称一样,则表示程序已经启动了,就不再启动. protected override void OnStartup(StartupEventArgs e) { // Get Reference to the current Process Pro…
UWP 程序天生单实例.当然,新 API (10.0.17134)开始也提供了多实例功能.不过,传统 Win32 程序可就要自己来控制单实例了. 本文介绍简单的几个 Win32 方法调用,使 Win32 程序也支持单实例.   激活之前进程的窗口 我们可以通过进程名称找到此前已经启动过的进程实例,如果发现,就激活它的窗口. [STAThread] static void Main(string[] args) { var current = Process.GetCurrentProcess()…
一.VC++与MFC 讲VC++免不了要提MFC,MFC全称Microsoft Foundation Classes,也就是微软基础类库.它是VC++的核心,是C++与Windows API的结合,很彻底的用C++封装了Windows SDK(Software Development Kit,软件开发工具包)中的结构和功能,还提供了一个应用程序框架,此应用程序框架为软件开发者完成了一些例行化的工作,比如各种窗口.工具栏.菜单的生成和管理等,不需要开发者再去解决那些很复杂很乏味的难题,比如每个窗口…
前言 这才第几天博客就跟不上了,看来一天一篇博客的目标还是有点大,写博客还是挺费时间的,写了不满意删,删完再写...直到自己没了耐心.今天先写个前言,实质性的内容明天再补吧.今天一天的收获还是挺多的,首先windows下单例程序的实现方式,这篇文章最主要介绍一个进程间通信的方式.当然其他方法也需要介绍.还有编程中的敏捷开发,这个内容现在是大体上了解了,还有待深挖,学会后应用到自身上试试.敏捷开发这部分内容等以后在专门出一篇自己的理解吧,网上这方面的内容还是挺多的.说实在的今天博客没有完成主要是因…
在上面一篇中介绍到,监控模块要做成一个驱动模块(或者说是可加载模块,LKM),动态的加载到Linux内核中.那么这篇就简单的介绍一下怎样做一个这样的驱动模块.   以简单的hello world程序为例,我们如何把它写成一个驱动模块,并加载到Linux内核里面呢?   一开始,你要保证你的Linux系统有内核源码树.现在的Linux发行版安装时记得选择是Developer模式安装,基本上就行了.   首先,你要写一个hello.c源代码文件,代码如下.     然后你要写一个Makefile文件…
[程序1] 题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数.求??代表的两位数,及809*??后的结果. 1.程序分析: 2.程序源代码: output(long b,long i) { printf("\n%ld/%ld=809*%ld+%ld",b,i,i,b%i); } main() {long int a,b,i; a=809; for(i=10;i<100;i++) {b=i*a+1; if(b>…
通过Web Api 和 Angular.js 构建单页面的web 程序 在传统的web 应用程序中,浏览器端通过向服务器端发送请求,然后服务器端根据这个请求发送HTML到浏览器,这个响应将会影响整个的页面,比如说:用户通过一个连接导航到一个页面,会发送一个请求到服务器端,接下来服务器将会发送一个新的页面给浏览器.但是在单页面应用程序中,整个页面只是在浏览器一开始请求的时候才会加载,接下来的请求,下来的交互请求都是通过ajax 来完成的,这就意味着只有部分的页面会更新,并不需要去加载整个的页面,这…
mac监听Dock激活程序 涉及库添加: LIBS += -framework CoreFoundation -framework Carbon -lobjc 涉及头文件: #include <objc/objc.h> #include <objc/message.h> 监听回调函数: bool dockClickHandler(id self,SEL _cmd,...) { Q_UNUSED(self) Q_UNUSED(_cmd) (QMainWindow *)mainWind…
1.问题症状 在VC++环境下,利用MFC单文档应用程序SDI下开发OpenGL程序,当调用glGenBuffersARB(1, &pbo)方法编译通过但执行时出错,出错代码如下: OpenGL程序中的0x00000000 处未处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突 void createVBO(GLuint *vbo,int size) { glGenBuffers(,vbo);//该行代码出错,呜呜 glBindBuffer(GL_ARRAY_B…