下面的代码显示了一个计时器,每100*1000(毫秒)打勾以显示一个弹出消息进行注册.下面的代码正在运行,但遗憾的是我的应用程序在一段时间后会挂起.
我已经在google和stackoverflow中搜索了这个答案.但我找不到正确的答案,让我的应用程序工作而不会被绞死.
private System.Timers.Timer register_Timer = new System.Timers.Timer();
register_Timer.Interval = (100 * 1000);
register_Timer.Elapsed += new ElapsedEventHandler(register_Timer_Tick);
register_Timer.SynchronizingObject = this;
register_Timer.AutoReset = true;
register_Timer.Enabled = true;
System.GC.KeepAlive(register_Timer);
private void register_Timer_Tick(object sender, EventArgs e)
{
//Pop up to show register message
}
Run Code Online (Sandbox Code Playgroud) 我有一些代码在数组中生成1000个数字然后对它们进行排序:
import java.util.Arrays;
import java.util.Random;
public class OppgA {
public static void main(String[] args) {
int[] anArray;
anArray = new int[1000];
Random generator = new Random();
for(int i=0; i<1000; i++){
anArray[i] = (generator.nextInt(1000)+1);
}
Arrays.sort(anArray);
System.out.println(Arrays.toString(anArray));
}
}
Run Code Online (Sandbox Code Playgroud)
现在我被要求计算并打印排序数组所花费的时间.我有什么线索可以做到这一点?我真的找不到太多可以帮助我解决的问题.
谢谢!
我想每秒都来一个计时器.但我不想在UI线程上运行它,以防止冻结.
所以,我使用的是另一个计时器而不是Designer提供的内置计时器.而且我不确定这是否是正确的方法.
threadtimer = new System.Threading.Timer(timer, null, 1000, Timeout.Infinite);
private void timer(object obj)
{
dowork.....
threadtimer.Change(1000, Timeout.Infinite);
}
Run Code Online (Sandbox Code Playgroud)
它似乎是错的,我首先创建线程,并告诉它在1000之后运行,无限时间.而且我仍然需要复述它来永远这样做.如果它不成立,我为什么还要有第二个参数呢?
如何在python中每34分钟打印一次"hello world"?现在我正在抓住系统时间,将它与我上次录制的时间进行比较,循环(这是24小时制的痛苦),冲洗并重复.有没有一个很好的方法来做到这一点.
简单地说,你如何每34分钟循环编码一下这段代码:
打印("每34分钟执行一次任务")
我有两种不同的方法来实现相同的东西,但我想第二种方法是最好的.但是,当第一个使用tic toc时,我得到了更好的结果.怎么会 ?
j=6;
i=j;
Savings = zeros(i,j);
Costs = magic(400);
tic;
for x=2:i
for y=2:j
if(x ~= y)
Savings(x,y) = Costs(x,1) + Costs(1,y) - Costs(x,y);
end
end
end
first=toc;
disp(num2str(first))
Savings = zeros(i,j);
tic;
Ix=2:i;
Iy=2:j;
I = false(i,j);
I(Ix,Iy) = bsxfun(@ne, Ix', Iy);
S = bsxfun(@plus, Costs(Ix,1), Costs(1,Iy)) - Costs(Ix,Iy);
Savings(I) = S(I(Ix,Iy));
second=toc;
temp = Savings;
disp(num2str(second))
Run Code Online (Sandbox Code Playgroud) 我已经为我的游戏添加了一个计时器,它工作正常,但我现在遇到的问题是Timer .stop()方法似乎对我不起作用.我想每次用户点击一个选项时重置计时器,但它似乎是计时器.停止方法不起作用.
请问我还没有做什么?
这是我的计时器方法.我正在使用Timer.instance.stop()来停止计时器.
public void timer(){
System.out.println("Timer started!!!");
Timer.schedule(new Task(){
@Override
public void run() {
System.out.println("Timer UP!!!");
nextWord(game.getterSetter.getCategoryItem(),
game.getterSetter.getCategory());
}
}, gametime);
}
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!
我正在开发一个WPF应用程序,它监视有关一组正在运行的进程的一些重要数据并显示它.我有一些其他标签,它们UserControl可以执行其他一些功能.进程选项卡使用调度程序计时器每1秒更新一次数据,计算相对较重.我在这里尝试做的是仅在选择进程选项卡时触发计时器,并在选择其他选项卡时停止计时器,以便在用户未查看时不会不必要地进行数据计算.对于我的应用程序,中间数据值是无关紧要的.
我正在考虑订阅Loaded和用作标签内容的Unloaded事件,UserControl分别用于启动和停止计时器.还有更好的选择吗?
实现此功能的最佳方法是什么?
我希望在一定的延迟后调用一个特定的方法.我尝试了不同的aproaches,如计时器,执行程序或处理程序.他们满足了他们应该做的事情,但有一点例外.延迟方法调用在番石榴的多图中进行了一些更改.在runTimerTask 的方法中,输出就像我想要的那样.但是如果我打印出多边形图,run那么更改将被撤消,我仍然拥有旧的多图值.但我需要更新的,因为我的数据保存在其中,我需要使用更新的值.
我的代码看起来像这样:
public class classTimer {
public static void main(String[] args) {
//some code, irrelevant for the task
new Timer().schedule(new TimerTask() {
@Override
public void run() {
dataMap = UndoManager.undoChanges(dataMap, a, hw);
// Point 1
}
}, delay);
// Point 2
}
}
Run Code Online (Sandbox Code Playgroud)
就像我之前说过的那样,打印dataMapat Point1会给出正确的输出,在Point 2处旧的值,比如Method UndoChanges更新的调用.实现了多重映射,更改保持一致,并且通常必须更改值,但这不是这里的情况.我在这里错过了什么?如果有人知道在延迟后调用方法的方法不同,我会很高兴听到它.
谢谢,非常感谢
我有一个关于编写应用程序启动时显示的句子的简单应用程序.唯一的问题是,我需要应用程序来计算用户写句子的时间..就像当你触摸"提交"按钮时, Toast的消息会说"那是对的!,你花了3.2秒"作为例子.
我听说你可以设置一个计时器,以便在特定动作发生时开始......你可以命令它停止.
因此,假设计时器将在您启动应用程序时启动,并且当您触摸"提交"按钮时它将停止,并提供如上所述的干杯消息,计算启动应用程序后写入感知的确切时间!*
这是应用程序代码希望它有所帮助:*
Button w;
TextView t;
EditText e;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
w = (Button) findViewById(R.id.Write);
t= (TextView) findViewById(R.id.FTS);
e = (EditText) findViewById(R.id.Text);
w.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String check1 = t.getText().toString();
String check2 = e.getText().toString();
if (check1.equals(check2))
Toast.makeText(MainActivity.this,"You Wrote it Right !!!",Toast.LENGTH_LONG).show();
else if (check2.equals(""))
Toast.makeText(MainActivity.this,"It's Empty",Toast.LENGTH_LONG).show();
else
Toast.makeText(MainActivity.this,"You wrote it wrong,try again !",Toast.LENGTH_LONG);
Run Code Online (Sandbox Code Playgroud)
我对Android很新,所以我真的不知道怎么做,谢谢你的时间.*
我有一个填充随机板的过程,希望以最有效的方式,我有一个我正在运行的循环,我想从循环的开始到它完成像秒表这样的时间然后我可以将一个路径寻找算法的结果与另一个路径寻找算法进行比较,我之前没有使用这样的定时器,也不确定我是否会采用错误的方式.
这,我希望更多地展示我正在尝试做的事情
System.Timers.Timer gameTime = new System.Timers.Timer();
gameTime.Interval = (1000);
gameTime.Enabled = true;
gameTime.Start();
m_turn = 1;
do
{
//Proccess here
m_turn++
while(m_turn <= 1000)
gameTime.Stop();
string printTime = gameTime. //The amount of times the interval has passed?
Run Code Online (Sandbox Code Playgroud)