2013年8月3日

[数据加密]GIS空间数据水印信息隐藏与加密技术方法[转]

摘要: 到目前为止,国内外数字水印技术的研究主要集中在图像、视频和声音等多媒体信息的版权保护上,在GIS空间数据中,通过隐藏水印信息并对其加密、压缩以实现其安全保护的研究还很少,这是数字水印技术应用的一个新领域、新尝试,也是GIS空间数据安全管理方法中一项具有挑战性的创新技术研究。一、空间数据水印信息隐藏与加密技术原理GIS空间数据水印信息文件隐藏与文件加密是对GIS空间图形数据实行安全保护的两种核心方法,两者对数据的保护都可转化为对水印密钥的保护,因此,GIS空间数据水印信息隐藏技术可以沿袭传统加密与信息隐藏技术的一些基本思想和概念,但两者采用的保护信息的手段是不相同的。1、GIS空间数据水印信息隐 阅读全文

posted @ 2013-08-03 21:17 yuanyl 阅读(1751) 评论(0) 推荐(0)

[转]C#多线程学习(六) 互斥对象

摘要: 如何控制好多个线程相互之间的联系,不产生冲突和重复,这需要用到互斥对象,即:System.Threading 命名空间中的 Mutex 类。我们可以把Mutex看作一个出租车,乘客看作线程。乘客首先等车,然后上车,最后下车。当一个乘客在车上时,其他乘客就只有等他下车以后才可以上车。而线程与Mutex对象的关系也正是如此,线程使用Mutex.WaitOne()方法等待Mutex对象被释放,如果它等待的Mutex对象被释放了,它就自动拥有这个对象,直到它调用Mutex.ReleaseMutex()方法释放这个对象,而在此期间,其他想要获取这个Mutex对象的线程都只有等待。下面这个例子使用了Mut 阅读全文

posted @ 2013-08-03 10:51 yuanyl 阅读(133) 评论(0) 推荐(0)

[转]C#多线程学习(五) 多线程的自动管理(定时器)

摘要: Timer类:设置一个定时器,定时执行用户指定的函数。 定时器启动后,系统将自动建立一个新的线程,执行用户指定的函数。初始化一个Timer对象:Timer timer = new Timer(timerDelegate, s,1000, 1000);// 第一个参数:指定了TimerCallback 委托,表示要执行的方法;// 第二个参数:一个包含回调方法要使用的信息的对象,或者为空引用;// 第三个参数:延迟时间——计时开始的时刻距现在的时间,单位是毫秒,指定为“0”表示立即启动计时器;// 第四个参数:定时器的时间间隔——计时开始以后,每隔这么长的一段时间,TimerCallback所代 阅读全文

posted @ 2013-08-03 10:36 yuanyl 阅读(170) 评论(0) 推荐(0)

[转]C#多线程学习(四) 多线程的自动管理(线程池)

摘要: 在多线程的程序中,经常会出现两种情况:一种情况: 应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应 这一般使用ThreadPool(线程池)来解决;另一种情况:线程平时都处于休眠状态,只是周期性地被唤醒 这一般使用Timer(定时器)来解决;ThreadPool类提供一个由系统维护的线程池(可以看作一个线程的容器),该容器需要 Windows 2000 以上系统支持,因为其中某些方法调用了只有高版本的Windows才有的API函数。将线程安放在线程池里,需使用ThreadPool.QueueUserWorkItem()方法,该方法的原型如下://将一个线程放.. 阅读全文

posted @ 2013-08-03 10:34 yuanyl 阅读(125) 评论(0) 推荐(0)

[转]C#多线程学习(三) 生产者和消费者

摘要: 前面说过,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。在C#中,关键字lock定义如下:lock(expression) statement_blockexpression代表你希望跟踪的对象,通常是对象引用。 如果你想保护一个类的实例,一般地,你可以使用this; 如果你想保护一个静态变量(如 阅读全文

posted @ 2013-08-03 10:32 yuanyl 阅读(144) 评论(0) 推荐(0)

[转]C#多线程学习(二) 如何操纵一个线程

摘要: 下面我们就动手来创建一个线程,使用Thread类创建线程时,只需提供线程入口即可。(线程入口使程序知道该让这个线程干什么事)在C#中,线程入口是通过ThreadStart代理(delegate)来提供的,你可以把ThreadStart理解为一个函数指针,指向线程要执行的函数,当调用Thread.Start()方法后,线程就开始执行ThreadStart所代表或者说指向的函数。打开你的VS.net,新建一个控制台应用程序(Console Application),编写完全控制一个线程的代码示例://ThreadTest.csusingSystem;usingSystem.Threading;na 阅读全文

posted @ 2013-08-03 10:30 yuanyl 阅读(127) 评论(0) 推荐(0)

[转]C#多线程学习(一) 多线程的相关概念

摘要: 什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。什么是线程?线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。什么是多线程?多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。多线程的好处:可以提高CPU的利用率。在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待,这样就大大提高了程序的效率。多线程的不利方面 阅读全文

posted @ 2013-08-03 10:21 yuanyl 阅读(134) 评论(0) 推荐(0)

[转]C# 中的委托和事件

摘要: 引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。将方法作为方法的参数我们先不管这个标题如何的绕口,也不管委托究竟是个什么东西,来看下面这两个最简单的方法,它们不过是在屏幕上输出一句问 阅读全文

posted @ 2013-08-03 10:18 yuanyl 阅读(186) 评论(0) 推荐(0)

[转]mdb文件导入到ArcSDE中

摘要: //将上传的mdb文件保存至sde数据库中 protected void btnSaveToSDE_Click(object sender, EventArgs e) { //获取服务器上下文 IServerContext serverContext = GetServerContext(); //打开mdb文件所在的工作空间 ESRI.ArcGIS.Geodatabase.IWorkspaceFactory wf = serverContext.CreateObject("esriDataSourcesGDB.AccessWorkspaceFactory") as IWo 阅读全文

posted @ 2013-08-03 10:09 yuanyl 阅读(1000) 评论(1) 推荐(0)

[转]大白话系列之C#委托与事件讲解大结局

摘要: 今天是大白话系列之C#委托与事件讲解的大结局,也是我们最关心的,在日常的MES系统编程中到底怎样使用这样的利器,其实我们每天都在使用事件,一个窗体,一个按钮都包含这事件,只是很少用到自己写的委托和事件,说白了不知道如何下手,也不知道在什么样的场景下应用。用到事件的地方有很多,这次讲解就MES系统开发中我们经常应用的场景。一、通用控件场景通用控件有很多,这里举最常用的万能通用分页控件【注:】本分页控件,只是为了讲解使用,并非真分页控件,还是基于.net控件的分页我们先来看场景我们所看到的这个分页控件就是这次讲解的主角,在日常的编程中,像这样功能我们用的做多,所以我们必须要把它抽象出来,不能每个页 阅读全文

posted @ 2013-08-03 09:52 yuanyl 阅读(128) 评论(0) 推荐(0)

[转]大白话系列之C#委托与事件讲解(三)

摘要: 今天我接着上面的3篇文章来讲一下,为什么我们在日常的编程活动中遇到这么多sender,EventArgs e 参数:protected void Page_Load(object sender, EventArgs e){}protected void btnSearch_Click(object sender, ImageClickEventArgs e){}protected void grdBill_RowDataBound(object sender, GridViewRowEventArgs e){}那他们到底表示什么呢?在回答上面的问题之前,我们先搞懂 .Net Framework 阅读全文

posted @ 2013-08-03 09:49 yuanyl 阅读(133) 评论(0) 推荐(0)

[转]大白话系列之C#委托与事件讲解(二)

摘要: 什么是事件?EVENT?点击事件?加载事件?一连串的模糊的概念冲击着我们弱小的脑袋那我们首先来看一下比较正统的感念吧:事件是类在发生其关注的事情时用来提供通知的一种方式。事件的发生一般都牵扯2个角色事件发行者(Publisher):一个事件的发行者,也称作是发送者(sender),其实就是个对象,这个对象会自行维护本身的状态信息,当本身状态信息变动时,便触发一个事件,并通知说有的事件订阅者。事件订阅者(Subscriber):对事件感兴趣的对象,也称为Receiver,可以注册感兴趣的事件,在事件发行者触发一个事件后,会自动执行这段代码。为了更好的让大家理解上面的概念,我先什么都不讲,我们先来 阅读全文

posted @ 2013-08-03 09:48 yuanyl 阅读(163) 评论(0) 推荐(0)

[转]大白话系列之C#委托与事件讲解(一)

摘要: 从序言中,大家应该对委托和事件的重要性有点了解了吧,虽然说我们现在还是能模糊,但是从我的大白话系列中,我会把这些概念说的通俗易懂的。首先,我们还是先说说委托吧,从字面上理解,只要是中国人应该都知道这个意思,除非委托2个中文字不认识,举个例子,小明委托小张去买车票。 但是在我们的程序世界里,也是这么的简单吗?当然,什么是OO,OO就是现实世界的抽象,所有现实世界的事物,在OO里都能得到很好的诠释,不好意思,扯远了......那我们就单刀直入吧,如果同学们不嫌烦的话,可以看一下,网上中文,英文的那个GreetingPeople例子。 首先是C#语法publicdelegatevoidBugTick 阅读全文

posted @ 2013-08-03 09:46 yuanyl 阅读(148) 评论(0) 推荐(0)

[转]大白话系列之C#委托与事件讲解(序言)

摘要: 在讲委托,事件之前,我想问大家一个非常简单的问题,也许在我们日常的编程中基本上每天都会遇到,但是却往往不去了解的地方,请以下代码:protected void Page_Load(object sender, EventArgs e){}protected void btnSearch_Click(object sender, ImageClickEventArgs e){}protected void grdBill_RowDataBound(object sender, GridViewRowEventArgs e){}protected void grdBill_RowDeleting( 阅读全文

posted @ 2013-08-03 09:42 yuanyl 阅读(183) 评论(0) 推荐(0)

导航