Много людей говорит драйверы ядра ОС и драйверы устройств, которые являются, конечно, хорошими приложениями для C. Но C также полезен для записи любых важных приложений производительности, которые должны использовать каждый бит производительности, к которой аппаратные средства способны.
я думаю о приложениях как системы управления базами данных (MySQL, Oracle, SQL Server), веб-серверы (апач, IIS), или даже мы браузеры (посмотрите на способ, которым хром был записан).
можно сделать столько оптимизации в C, которые просто невозможны на языках, которые работают в виртуальных машинах как Java или.NET. Например, базы данных и серверы поддерживают многих одновременных пользователей и потребность масштабироваться очень хорошо. База данных, возможно, должна обменяться данными структуры между многочисленными пользователями (потоки/процессы), но сделать так способом, который эффективно использует кэши ЦП. В C можно использовать вызов операционной системы, чтобы определить размер кэша, и затем выровнять структуру данных соответственно к строке кэша так, чтобы строка не делала "пинг-понга" между кэшами когда несколько доступов потоков смежные, но несвязанные данные (так называемая "ложь, совместно использующая). Это - один пример. Существуют многие другие.
Я думаю, что лучше всего использовать конвертер. Пример преобразования результата в логическое значение см. В сообщении в блоге .
<DataTrigger
Binding="{Binding Path=x, Converter={StaticResource IsNotNullConverter}}"
Value="true">
Если вы хотите использовать триггеры, вы можете написать свои собственные или использовать существующие . Если вы используете MVVM, просто привяжите представление к свойству на вашей виртуальной машине, которое выполняет логику за вас.