我向网站发出多个请求.如何在减慢进程的请求之间引入延迟?有没有一种方法可以让我只是让线程在继续之前等待X秒?
这是关于加载的问题.我的应用程序应该等待3秒然后绘制路径.现在,加载消息框在3秒内出现,但应用程序不会等待3秒并立即绘制.我的编码有问题吗?
非常感谢!!
public void drawpath(){
// first to do some checking
if (sourceLat.equals("22.3366467") && destinationLat.equals("35.68449"))
ShowMsgDialog("Please enter the starting point and destination");
else if (sourceLat.equals("22.3366467") )
ShowMsgDialog("Please enter the starting point by touch");
else if (destinationLat.equals("35.68449") )
ShowMsgDialog("Please enter the destination by touch");
else if (pairs != null ){
// go to loading function
loading();
// Start to draw the path
String[] lngLat = pairs[0].split(",");
GeoPoint startGP = new GeoPoint((int) (Double.parseDouble(lngLat[1]) * 1E6), (int) (Double.parseDouble(lngLat[0]) * 1E6));
mc = mapView.getController(); …Run Code Online (Sandbox Code Playgroud) 在我的UI中,当点击一个按钮时,它会调用一个for循环,顺序执行几个任务.
// For Loop
for (int i = 1; i <= 3; i++)
{
// Perform Task[i]
}
// Results:
// Task 1
// Task 2
// Task 3
Run Code Online (Sandbox Code Playgroud)
在完成每项任务后,我想添加一个用户定义的延迟.例如:
// For Loop
for (int i = 1; i <= 3; i++)
{
// Perform Task[i]
// Add Delay Here
}
// Results:
//
// Task 1
// Delay 2.5 seconds
//
// Task 2
// Delay 3 seconds
//
// Task 3
// Delay 2 seconds
Run Code Online (Sandbox Code Playgroud)
在iOS中,使用Objective-C,有一种方法可以在for循环中添加这样的延迟,请记住:
我正在创建一个模拟骰子滚动的小应用程序.为了模拟弹跳,我随机改变了图片的位置.现在要模拟多个弹跳,我使用for循环来连续改变图片框的位置.但它没有按照我的计划发生,表单只显示最后一个循环的位置.我甚至尝试使用System.Threading.Thread.Sleep(1000)希望显示弹跳,但即使他们只显示最后一个循环.
For bounceCount As Integer = 1 To bounces
bounce(pb_dice1)
bounce(pb_dice2)
System.Threading.Thread.Sleep(3000) 'I need to pause here and show the recent change in position then continue after 3 seconds
Next
Run Code Online (Sandbox Code Playgroud)
该bounce方法改变了位置PictureBox.
如何暂停我的for循环,显示新定位的骰子,然后在3秒后继续?
我需要运行以下代码只有60秒
代码工作完美,延迟2秒,每5秒重复一次.
但在这里我只需要60秒就可以完成这一切
int delay = 3000; // delay for 3 sec.
int period = 5000; // repeat every 5 sec.
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
System.out.println("Would it run?"+System.currentTimeMillis());
}
}, delay, period);
Run Code Online (Sandbox Code Playgroud)
请告诉我怎么做?
这可能听起来像一个重复的问题,但它的尼特,我在搜索之前已经搜索了很多.
我有一个包含10个用户和28个HTTP请求的单个线程组,我想要的是:
Thread 1 --->rqst 1
Thread 1 --->rqst 2
Thread 1 --->rqst 3
.
.
Thread 2 --->rqst 1
Thread 2 --->rqst 2
Thread 2 --->rqst 3
.
.
Thread n --->rqst n
Run Code Online (Sandbox Code Playgroud)
延迟一分钟 重新开始.
我尝试在线程组中使用常量计时器,但我得到的是每次所有线程执行单个请求.
任何人都可以解释如何实现这一目标.
预期行为:
对于 i = 0,打印语句在 0 秒后调用。
对于 i = 1,1.1 秒后调用打印语句
对于 i = 2,打印语句在 2.2 秒后调用
实际行为:
分别在 0、1、2、3 秒后调用打印语句,即忽略内部延迟函数。
那么为什么会出现差异呢?
for i in 0...3 {
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(i), execute: {
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(i/10), execute: {
print("function was called")
})
})
}
Run Code Online (Sandbox Code Playgroud) 我最近收到一个面试问题,我没能正确回答。它是这样的:
编写一个函数的实现,该函数
callAfter可以在某个指定的持续时间后调用任何函数。函数的输出应该保持不变。该函数应具有 > 以下语法:示例 1:假设您有一个
sum这样调用的函数:Run Code Online (Sandbox Code Playgroud)function sum(a, b) { console.log('Sum is: ', a + b); }现在你应该能够执行:
Run Code Online (Sandbox Code Playgroud)sum.callAfter(5000, 8, 9);这应该会
sum在 5 秒后使用参数 8 和 9调用该函数。输出:'Sum is: 17'。示例 2:对于
difference具有以下实现的函数:Run Code Online (Sandbox Code Playgroud)function difference(a, b) { console.log('Difference is: ', a-b); }您应该能够执行:
Run Code Online (Sandbox Code Playgroud)difference.callAfter(4000, 8, 6);这应该会
difference在 4 秒后使用参数 8 和 6调用该函数。输出:'Difference is: 2'。
注意:我知道我可以在 n 秒后使用以下方法执行一个函数:
var delay_func = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer); …Run Code Online (Sandbox Code Playgroud)