C# 8 способов создать поток

BackgroundWorker bw = new BackgroundWorker(); bw.DoWork += (ob, se) => { //работа потока int a = 5; }; bw.RunWorkerAsync(); System.Threading.Thread newThread; newThread = new System.Threading.Thread(() => { int a = 5; }); newThread.Start(); new System.Threading.Thread(() => { int a = 5; }).Start(); ThreadPool.QueueUserWorkItem((obj) => { int a = 5; }); ```cs Parallel.Invoke(() => { int a = 5; }); Task.Run(() => { int a = 5; }); Task t1 = new Task(() => { int a = 5; }); t1....

August 18, 2014 · 1 мин · ksemenenko

Определение символа разделителя десятичного числа C#

Для этих целей служит string separator = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator; Этим мы получим разделитель для текущей культуры, также оттуда можно получить еще много чего полезного. http://msdn.microsoft.com/ru-ru/library/system.globalization.numberformatinfo.numberdecimalseparator.aspx...

June 3, 2014 · 1 мин · ksemenenko

Как положить сборку в GAC

gacutil.exe –i my.dll ...

March 12, 2014 · 1 мин · ksemenenko

C# парссинг строки запроса из браузера

Для нормального парсинга парамаетров из строки запроса лучше всего использовать метод HttpUtility.ParseQueryString() string qs = "?param1=value1&param2=value2"; NameValueCollection query = HttpUtility.ParseQueryString(qs); ...

January 24, 2014 · 1 мин · ksemenenko

Использование модулей в WebAPI

создать класс с хендлером public class CustomHeaderHandler : DelegatingHandler { protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { request.Headers.Remove("Server"); request.Headers.Add("Server", "WDAPI Server 4"); return base.SendAsync(request, cancellationToken); } } додати наш хендлер HttpConfiguration config = new HttpConfiguration(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional }); //вот так можно добавляеть хендлеры для обратботки запросов на низком уровне config.MessageHandlers.Add(new CompressedRequestHandler()); config.MessageHandlers.Add(new GZipToJsonHandler()); config.MessageHandlers.Add(new CustomIHeaderHandler()); app.UseWebApi(config); посилання:...

January 15, 2014 · 1 мин · ksemenenko

Як в WebApi видавати html

public HttpResponseMessage GetHTML() { var response = this.Request.CreateResponse(); response.Content = new StringContent(@" <html> <head> </head> <body> Test </body> </html> "); response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html"); return response; ...

January 11, 2014 · 1 мин · ksemenenko

Инсталяция Windows Service и запуск с параметрами

В классе инсталлере проекта нужно добавить: public partial class ProjectInstaller : System.Configuration.Install.Installer { public ProjectInstaller() { this.InitializeComponent(); } protected override void OnBeforeInstall(System.Collections.IDictionary savedState) { this.Context.Parameters["assemblypath"] = this.AppendPathParameter(Context.Parameters["assemblypath"], "-service"); base.OnBeforeInstall(savedState); } protected override void OnBeforeUninstall(System.Collections.IDictionary savedState) { this.Context.Parameters["assemblypath"] = this.AppendPathParameter(Context.Parameters["assemblypath"], "-service"); base.OnBeforeUninstall(savedState); } protected virtual string AppendPathParameter(string path, string parameter) { if (path.Length > 0 && path[0] != '"') { path = string.Format("\"{0}\"", path); } path += string.Format(" {0}", parameter); return path; } } http://stackoverflow....

December 23, 2013 · 1 мин · ksemenenko

Как удалить сохраненные адреса из RDP

в реестре по адресу: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Terminal Server Client находиться список сохраненных подключений....

October 27, 2013 · 1 мин · ksemenenko

Как установить старую (или любую другую) версию пакета через NuGet

В Visual Studio, в консоли NuGet: Uninstall-Package Newtonsoft.Json -Force Install-Package Newtonsoft.Json -Version <press tab key for autocomplete> ...

October 16, 2013 · 1 мин · ksemenenko

.NET проверка MD5

using (var md5 = MD5.Create()) { using (var stream = File.OpenRead(filename)) { return md5.ComputeHash(stream); } } http://stackoverflow.com/questions/10520048/calculate-md5-checksum-for-a-file...

September 11, 2013 · 1 мин · ksemenenko

mssql удалить все таблицы из базы данных

Скрипт для удаления всех таблиц из бд для mssql USE [DATA-BASE-NAME] GO declare @i int set @i = 0 while (@i<99) begin declare @table_name varchar(100) declare table_list cursor for select name from sysobjects o2 where xtype='U' and not exists ( select * from sysforeignkeys k join syscolumns c1 on (k.fkeyid = c1.id and c1.colid=k.fkey) join syscolumns c2 on (k.rkeyid = c2.id and c2.colid=k.rkey) where c2.id = o2.id and c1.id <> o2....

September 11, 2013 · 1 мин · ksemenenko

.NET запуск приложений из приложения (exe)

Process myProcess = new Process(); myProcess.StartInfo.FileName = "someApp.exe"; myProcess.Start(); ...

August 13, 2013 · 1 мин · ksemenenko

.NET Запуск от имени администратора

WindowsIdentity id = WindowsIdentity.GetCurrent(); WindowsPrincipal principal = new WindowsPrincipal(id); bool isRunAsAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator); // Если нет прав админа if (!isRunAsAdmin) { ProcessStartInfo proc = new ProcessStartInfo(); proc.UseShellExecute = true; proc.WorkingDirectory = Environment.CurrentDirectory; proc.FileName = System.Windows.Forms.Application.ExecutablePath; proc.Verb = "runas"; proc.Arguments = string.Empty; try { Process.Start(proc); } catch { } Application.Current.Shutdown(); } ...

July 12, 2013 · 1 мин · ksemenenko

Как передать в Binding текущий элемент XAML

{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:SomeType}}} {Binding ElementName=SomeElementNAME} {Binding RelativeSource={RelativeSource Self}} {Binding RelativeSource={x:Static RelativeSource.Self}} ...

July 2, 2013 · 1 мин · ksemenenko

Локализация ресурсов .NET

Внезапно открыл для себя дополенение к Visual Studio Resource Translator от Microsoft. http://visualstudiogallery.msdn.microsoft.com/c23de518-d3bc-4b1a-a8d8-6ce43fdb2ff4?SRC=VSIDE После установки жмете правой кнопкой на файле ресурсов который нужно локализировать, выбираете язык и вперед....

June 21, 2013 · 1 мин · ksemenenko