Различия между C# async и Java ExecutorService

В C# есть классная новая функция

public Task<string> async f()
{
    string r = LongCompute();
    return r;
}

, но она не эквивалентна

public Future<String> f() {
    return Globals.executorService.submit(new Callable<String>() {
        public String call() throws Exception {
            String r = longCompute();
            return r;
        }
    });
}

, где в Java у вас есть больше гибкости для выбора пула потоков, в котором будет выполняться задача.

Как насчет ожидания? Это эквивалентно простому вызову get

string s = await f();

точно так же, как

String s = f().get();

Есть ли что-то еще в C#, или это действительно просто синтаксический сахар для версии Java? (Я не гуру С#, поэтому могу что-то упустить).

14
задан Chi-Lan 28 March 2012 в 08:50
поделиться