C#方法的委托和java中的回调

先看个效果20130415.

C#监视文件夹,显示文件夹操作到listView上

代码实现,以前在学校生活写的,就几句代码

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.IO;

using System.Threading;

namespace FileWatch

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private FileSystemWatcher watcher = new FileSystemWatcher();

private delegate void mydel(String str);//声明一个委托

private mydel MyDel;//声明一个全局的委托实例

/// <summary>

/// 选择文件夹并开始监视

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void btnChooseFolder_Click(object sender, EventArgs e)

{

FolderBrowserDialog fd = new FolderBrowserDialog();

if (fd.ShowDialog() == DialogResult.OK)

{

txbFolder.Text = fd.SelectedPath;

FileSystemWatch(txbFolder.Text);

MyDel = new mydel(AddTolist);

}

}

/// <summary>

/// 增加到列表

/// </summary>

/// <param name="str"></param>

private void AddTolist(string str)

{

lstbResult.Items.Add(str);

}

/// <summary>

/// 获取对文件夹操作的信息

/// </summary>

/// <param name="str">信息字符串</param>

private void GetInfo(string str)

{

lstbResult.Invoke(MyDel, str);

}

#region 文件监视操作

private void FileSystemWatch(string path)

{

watcher.Path = path;

watcher.Created += new FileSystemEventHandler(OnCreate);

watcher.Deleted += new FileSystemEventHandler(OnDelete);

watcher.Renamed += new RenamedEventHandler(OnRenamed);

watcher.IncludeSubdirectories = true;

watcher.EnableRaisingEvents = true;

}

private void OnChanged(object source, FileSystemEventArgs e)

{

GetInfo(e.Name + " 被 修改. " + DateTime.Now.ToShortTimeString());

}

private void OnCreate(object source, FileSystemEventArgs e)

{

GetInfo(e.Name + " 被 创建." + DateTime.Now.ToShortTimeString());

}

private void OnDelete(object source, FileSystemEventArgs e)

{

GetInfo(e.Name + " 被 删除." + DateTime.Now.ToShortTimeString());

}

private void OnRenamed(object source, FileSystemEventArgs e)

{

GetInfo(e.Name + " 被 重命名" + DateTime.Now.ToShortTimeString());

}

#endregion

}

}

java回调

public interface CallBack{

public void callBack();

}

时间: 2024-10-06 20:18:17

C#方法的委托和java中的回调的相关文章

Java中的回调函数学习

Java中的回调函数学习 博客分类: J2SE JavaJ# 一般来说分为以下几步: 声明回调函数的统一接口interface A,包含方法callback(); 在调用类caller内将该接口设置为私有成员private A XXX; 在caller内提供实现A接口的public方法(将外部该接口的实现类通过形参传入caller的XXX): caller的某个方法dosth()中会用到XXX.callback()方法; 在caller的实例中,先实现A接口,后调用dosth()方法: 网上流行

Java中的回调函数学习-深入浅出

Java中的回调函数一般来说分为下面几步: 声明回调函数的统一接口interface A.包括方法callback(); 在调用类caller内将该接口设置为私有成员private A XXX; 在caller内提供实现A接口的public方法(将外部该接口的实现类通过形參传入caller的XXX): caller的某个方法dosth()中会用到XXX.callback()方法; 在caller的实例中,先实现A接口.后调用dosth()方法: 样例: Java代码   //回调函数接口及方法

用简易例子讲Java中的回调机制

首先说点题外话.为什么要写这篇文章,因为在看J.U.C包的FutureTask源码的时候,有一个done()方法,这是个抽象方法,用户实现它之后,FutureTask会在执行完后调用这个方法.这就是回调机制,回调的思想就是: 类A调用类B的b方法 类B的b方法执行完毕主动调用类A的callback()方法 给出思想过于抽象,所以我会举出一个简单的实例(虽然简单,但是能说明问题),并总结Java实现回调的步骤. 实例基于知乎上一个解释什么是回调机制的回答. 描述:?一个顾客入住了一个酒店,酒店提供

java中的回调机制的理解(小例子)

这样的解释似乎还是比较难懂,这里举个简单的例子,程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序.程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法.目的达到.在C/C++中,要用回调函数,被掉函数需要告诉调用者自己的指针地址,但在JAVA中没有指针,怎么办?我们可以通过接口(interface)来实现定义回调函数. 正常情况下开发人员使用已经定义好的API,这个过程叫Call.但是有时这样不能满足需求,就需要程序员注册自己的程序,然后让

c++与java中的回调函数

首先,说明一下,因为java中没有指针的概念,所以java与c++中回调函数虽然原理差不多,但是实现方法不同. 说实话,如果c++是简单暴力直接的话,java更像一个小姑娘扭扭捏捏,本人也是过了很多次才了解到这个用法.... 1.c++ c++中的简单极了,只要将要调用的函数地址传给函数指针即可,简单明了.如下 #include <iostream> using namespace std; void pig() { cout << "猪在叫叫叫!!" <

【Java入门提高篇】Day5 Java中的回调(二)

Java中有很多个Timer,常用的有两个Timer类,一个java.util包下的Timer,一个是javax.swing包下的Timer,两个Timer类都有用到回调机制.可以使用它在到达指定时间间隔后发出通知,例如程序中有一个时钟,就可以每秒请求发送一个通知,以便更新时间显示.那么怎样通知Timer去完成我们的任务呢?在其他语言中,可以提供一个函数名,然后定时器周期性的调用它,但Java使用的是面向对象编程的思想,将某个类的对象传递给定时器,然后定时器再调用这个对象的方法,由于对象能携带的

Android中自定义veiw使用Java中的回调方法

//------------------MainActivity----中---------------------------------- import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.widget.Toast; public class MainActivity extends Activity { p

java中的回调机制

以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的,其实我刚开始也是这样不理解,看了人家说比较经典的回调方式: Class A实现接口CallBack callback——背景1 class A中包含一个class B的引用b ——背景2 class B有一个参数为call

如何理解java中的回调

以android中的Button的setOnClickListener这个回调为例: Button button = (Button)this.findViewById(R.id.button); button.setOnClickListener(new Button.OnClickListener() { //回调函数 @override publicvoid onClick(View v) { buttonTextView.setText("按钮被点击了"); } }); 那么我