This language bar is your friend. Select your favorite languages!

Idiom #185 Execute function in 30 seconds

Schedule the execution of f(42) in 30 seconds.

import "time"
go func() {
	time.Sleep(30 * time.Second)
	f(42)
}()
import "time"
timer := time.AfterFunc(
	30*time.Second,
	func() {
		f(42)
	})
using System;
using System.Threading.Tasks;
Task.Delay(TimeSpan.FromSeconds(30))
    .ContinueWith(_ => f(42));
let id = setTimeout(f, 30000, 42);
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.schedule(() -> _f(42), delayInSeconds, TimeUnit.SECONDS);
sleep(30);
f(42);
local $SIG{ALRM} = sub { f(42) };
alarm 30;
import threading
timer = threading.Timer(30.0, f, args=(42,) ) 
timer.start() 
Thread.new do
  sleep 30
  f(42)
end
use std::time::Duration;
use std::thread::sleep;
sleep(Duration::new(30, 0));
f(42);

Do you know the best way to do this in your language ?
New implementation...

Idiom created by

programming-idioms.org

Related idioms