Небольшая заметка - этот подход:
Task<Customer> task = GetCustomers();
task.Wait()
работает для WinRT.
Позвольте мне объяснить:
private void TestMethod()
{
Task<Customer> task = GetCustomers(); // call async method as sync and get task as result
task.Wait(); // wait executing the method
var customer = task.Result; // get's result.
Debug.WriteLine(customer.Name); //print customer name
}
public class Customer
{
public Customer()
{
new ManualResetEvent(false).WaitOne(TimeSpan.FromSeconds(5));//wait 5 second (long term operation)
}
public string Name { get; set; }
}
private Task<Customer> GetCustomers()
{
return Task.Run(() => new Customer
{
Name = "MyName"
});
}
Кроме того, этот подход работает только для решений для Windows Store!
Примечание. Этот способ не является потокобезопасным, если вы вызываете свой метод внутри другого метода асинхронизации (согласно комментариям @Servy)
Там также 2html в Vim, который работает очень хорошо, и он встроен: он берет файл, в котором Vim умеет выделять синтаксис, и создает HTML-код с правильным форматированием. Чтобы использовать его, просто откройте нужный файл с помощью Vim и создайте скрипт 2html. Он откроет преобразованный файл в новом буфере, который можно сохранить. Здесь:
vim example.diff
, а затем в Vim,
:so /usr/share/vim/vim72/syntax/2html.vim
:wqa
как насчет Text-Diff-HTML, difflib. HtmlDiff, CSDiff?
пигменты имеют подсветку синтаксиса для разности (и для большого количества других языков) и могут использоваться в качестве библиотеки или программы командной строки. Это - вид вещи, которую Вы ищете? Если не разъясните вопрос...
Я использую htmlize в Emacs. Не идет с Emacs и предполагает, что Вы используете Emacs. Полагается на подсветку синтаксиса режима Diff Emacs. Только хороший для того, чтобы сделать один файл за один раз. Делает правильную вещь для меня.