Завершение процессов в C#

var myproc = System.Diagnostics.Process
GetProcessesByName("MyTestProgram").ToList();
if (myproc.Count > 1)
{
foreach (var item in myproc)
{
if (item.Id != System.Diagnostics.Process.GetCurrentProcess().Id)
{
item.Kill();
}
}
}

TFS Azure – SDK по умолчанию

Сразу мы имеем доступ к SDK:


• Windows Server 2008 R2 (64-bit environment)
• Team Foundation Build (Team Foundation Server 2012)
• Visual Studio
  Visual Studio 2012 Ultimate RTM
  Visual Studio SDK 2012 RTM
  Visual Studio 2010 SP1
• The .NET Framework
  .NET 4.5
  .NET 3.5 SP1
• Windows Azure
  SDK 1.8
  SDK 1.7
  SDK 1.6
  Integration Components 1.6
• Other components
  SharePoint 2010
  SQL Server Data Tools for Visual Studio 2010 and Visual Studio 2012
  TFS 2012_BuildExtensions.msi (for Java)
  TypeScript for Visual Studio 2012
  Web Deploy 3.0
  Windows Phone SDK 8.0

 

Подробнее, а так же про настройку дополнительных компонентов

https://tfs.visualstudio.com/en-us/learn/build/hosted-build-controller-in-vs/

Lambda выражения в С++

В С++ с лямбдами достаточно все просто.
Конструкция примерно такая:  [ ] ( params ) {  body  };

 1. Создание функции:

auto f1 =[](int x) {return x*2;};
function<int (int, int)>f2 = [] (int x, int y) { return x + y; };

В пером случае возвращаемый тип будет присвоен автоматически.
Во втором случае мы сами указываем возвращаемый тип.

2. Доступ к локальным переменным:

int i = 3; //переменные к которым нужен доступ
int j = 5; //переменные к которым нужен доступ
function<int (void)> f4 = [i, &j] { return i + j; };

 в квадратных скобках мы передаем локальные переменные с которыми нужно работать в функции. Если вы используете это в вашем классе то для доступа можно использовать this в квадратных скобках = [this] – но это не допустим для статических функций.

 3. Неименованная функция:

int n = [] (int x, int y) { return x + y; }(5, 5);

 параметры для вызова передаться в круглых скобках в конце выражения.

Код:

#include "stdafx.h"
#include <iostream>
#include <functional>
#include <string>
#include <algorithm>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Lambda Test\n";
// пример 1 - лямбда
auto f1 =[](int x) {return x*2;};
// пример 2 - лямбда
function<int (int, int)> f2 = [] (int x, int y) { return x + y; };
// пример 3 - лямбда
auto f3 =[](int x, int y) {return x*2*y;};
// пример 4 - лямбда
int i = 3; //переменные к которым нужен доступ
int j = 5; //переменные к которым нужен доступ
function<int (void)> f4 = [i, &j] { return i + j; };
// пример 5 - лямбда
int n = [] (int x, int y) { return x + y; }(5, 5);
// вызов примера 1 
int t1 = f1(5);
// вызов примера 2 
int t2 = f2(5,5);
// вызов примера 3 
int t3 = f3(5,5); 
// вызов примера 4 
int t4 = f4(); 
cout << t1 << "\n";
cout << t2 << "\n";
cout << t3 << "\n";
cout << t4 << "\n";
cout << n << "\n";
string str; 
getline(cin,str);
return 0;
}

 MSDN: http://msdn.microsoft.com/en-us/library/vstudio/dd293599.aspx

Lambda выражение в C# и делегаты

Лямбда выражение в C# это очень удобный и мощный инструмент.

Общий тип записи выглядит так (input parameters) => expression

Грубо говоря есть 2 способа работы с лямбдной.

1. Использование делегата Func

Func<string, string> someFuncName = s => s.ToUpper();
Console.WriteLine(someFuncName("teststring"));


По сути позволят использовать функцию.
Подробнее тут http://acroblog.acrovations.com/post/2012/11/01/C-Func.aspx

2. Использования для разных функций

button1.Click += (sender, e) =>
{
textBox1.Text += "someTestString";
};

Так же это можно делать асинхронно

button1.Click += async (sender, e) =>
{
await SomeMethodAsync();
textBox1.Text += "someTestString";
};
async Task SomeMethodAsync ()
{     
await Task.Delay(1000);
}

3. Делегаты

delegate void TestDelegate(string s);
…
TestDelegate myDel = n => { string s = n + " " + "World"; Console.WriteLine(s); };
myDel("Hello");

 4. LINQ

var someVar = linqObject.Where(w=>w.ID == 5);

 

Регистрация COM объекта

1. Найдите папку, в которой находится файл COM-приложения и запомните путь к нему.
2. Нажмите Пуск -> Выполнить -> CMD.
3. Выполните команду regsvr32 <путь>, где <путь> — это путь к файлу

Например regsvr32 d:\someFolder\some.dll

Как создать ImageSource программно

Для того чтобы загрузить изображение нужен ImageSource,

SomeImage.ImageSource = new BitmapImage(
new Uri(@"images\img.png", UriKind.Relative));

Для Windows RT

Image img = new Image();
img.Source = new Windows.UI.Xaml.Media.Imaging.BitmapImage(
new Uri("ms-appx:/Assets/Logo.png"));