调用api:timeGetTime来取得当前时间。
long t1;
t1 = timeGetTime;
while(true)
{
if(timeGetTime - t1>你需要的间隔的豪秒数)
{
t1=timeGetTime;
做你需要做的事;
}
}最好是另外开一个线程来做这个事。不然你的cpu回完全占用.其他的方法我就不知道了。
long t1;
t1 = timeGetTime;
while(true)
{
if(timeGetTime - t1>你需要的间隔的豪秒数)
{
t1=timeGetTime;
做你需要做的事;
}
}最好是另外开一个线程来做这个事。不然你的cpu回完全占用.其他的方法我就不知道了。
如果要us那只有你自己根据你用的cpu的机器周期。然后用汇编语句来延时了。
很麻烦的。没种cpu的机器周期都不一样的。
//我用下面方法返回10,也就是说10毫秒一次
//Timer根本不能达到毫秒!差远了,不信你做做实验!
//能做到微秒吗?
int t1=System.Environment.TickCount;
while(true)
{
if (System.Environment.TickCount -t1>1)
this.Text=Convert.ToString (System.Environment.TickCount -t1);
t1=System.Environment.TickCount;
}
建议你到游戏开发相关的版或者论坛去问,directx里面一定有这种精确定时的方法的,搞游戏编程的应该会知道
说实在的,微秒级还要什么“调用事件方法”已经是笑话了。
有些不好听了,请包涵。
现在正在做一个试验,具体是这样的:用一个红外线接收器接收信号,红外线接收器有三条脚,一条是接微机电源地线,一条是接+5V和一条是接并口的状态位(5个状态位中,我用P7位(打印机端口的状态地址线有5位可以接收0V-+5V的信号,0V代表低电平,+5V代表高电平.)来接红外线接收器的发信端,用C#编了好了一个程序,实现的功能是:当按下电视机或空调机的遥控器时,程序画出信号的波形图,我是用NET中的timer来做查询扫描的.由于timer的最小时间单位是ms,因此精度不是很好,想用100ns来做.正在思考中,不知大家有什么思路呢?
在这里先多谢有回答这个问题的人.
我现在的思路是:
1用中断,但只有一条信号线,而没有中断线
2用线程,我正在钻啊钻中呢!,
3不知能否调用微机的时钟发生器来做
4就象平平说的,用API
5没有其它办法了,就用串口来接收。(不知这是不是比用并口更简单呢)。
大家有否好思路,请写一下,好吗?
是了,我想给很多分出去的,但为什么系统说我只能给出24分呢?// 说实在的,微秒级还要什么“调用事件方法”已经是笑话了。
// 有些不好听了,请包涵。 (repus()朋友说的极是!!),
不好意思,我可能记错了,应该是S才到mS才到nS才到微秒,对吧,我可能想说的是100nS定时查询的。
再一次感激跟帖的各位,是了,平平,你现在正忙于什么呢?我以前是用VB来编程的,现在转C#,不过我们公司编的比较多的还是和信号,接口有关的,我不知道我是否应该学VC。NET呢不过我总想用一心一意地学好门语言,不想学太多的。
现在正在做一个试验,具体是这样的:用一个红外线接收器接收信号,红外线接收器有三条脚,一条是接微机电源地线,一条是接+5V和一条是接并口的状态位(5个状态位中,我用P7位(打印机端口的状态地址线有5位可以接收0V-+5V的信号,0V代表低电平,+5V代表高电平.)来接红外线接收器的发信端,用C#编了好了一个程序,实现的功能是:当按下电视机或空调机的遥控器时,程序画出信号的波形图,我是用NET中的timer来做查询扫描的.由于timer的最小时间单位是ms,因此精度不是很好,想用100ns来做.正在思考中,不知大家有什么思路呢?
在这里先多谢有回答这个问题的人.
我现在的思路是:
1用中断,但只有一条信号线,而没有中断线
2用线程,我正在钻啊钻中呢!,
3不知能否调用微机的时钟发生器来做
4就象平平说的,用API
5没有其它办法了,就用串口来接收。(不知这是不是比用并口更简单呢)。
大家有否好思路,请写一下,好吗?
是了,我想给很多分出去的,但为什么系统说我只能给出24分呢?// 说实在的,微秒级还要什么“调用事件方法”已经是笑话了。
// 有些不好听了,请包涵。 (repus()朋友说的极是!!),
不好意思,我可能记错了,应该是S才到mS才到nS才到微秒,对吧,我可能想说的是100nS定时查询的。
再一次感激跟帖的各位,是了,平平,你现在正忙于什么呢?我以前是用VB来编程的,现在转C#,不过我们公司编的比较多的还是和信号,接口有关的,我不知道我是否应该学VC。NET呢不过我总想用一心一意地学好门语言,不想学太多的。
我是创建了一个线程不停的想isa卡上发送指定。和接收经过Ad转换过的信号。然后绘在窗体上形成一条扫描线。
在c#里用线程很方便啊。
我的接收程序大概就是这么个思路:
while(true)
{
发送指定
判断AD转换是否完成
接受数据显示在屏幕上
}
然后开一个线程做这些事。
现在的机器走这写指令很快的。应该可以做到你要就的速度