陋室铭
永远也不要停下学习的脚步(大道至简至易)

上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 108 下一页
摘要: 操作系统Windows8或以上 using System; using System.Net.WebSockets; using System.Text; using System.Threading; class Client { static void Main( string [] args) 阅读全文
posted @ 2021-09-03 16:48 宏宇 阅读(1493) 评论(0) 推荐(0) 编辑
摘要: 1 WebSocket 原理 1.1 背景 WebSocket 是基于Http 协议的改进,Http 为无状态协议,基于短连接,需要频繁的发起请求,第二 Http 只能客户端发起请求,服务端无法主动请求。 1.2 相同点 都是基于TCP的应用层协议。 都使用Request/Response模型进行连 阅读全文
posted @ 2021-09-03 16:44 宏宇 阅读(1927) 评论(0) 推荐(0) 编辑
摘要: 1.以下代码实现一个webSocket连接,在文本输入框中输入内容,点击发送,通过服务器,返回相同的内容显示在下方。 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>WebSocket</ 阅读全文
posted @ 2021-09-02 15:33 宏宇 阅读(492) 评论(0) 推荐(0) 编辑
摘要: 总结 先放结论:datagrid的刷新方式: 重新绑定 ,全部刷新,最常用的,都知道 datagrid.itemsSource=null; datagrid.itemsSource=list; 但有些时候不方便重新绑定,于是 针对数据源有增删,需要实时显示 将datagrid绑定的list<obje 阅读全文
posted @ 2021-09-01 16:39 宏宇 阅读(1811) 评论(1) 推荐(0) 编辑
摘要: 理论上WPF程序需要修改的是数据源而不是修改控件值,修改数据源后是否需要编写重新绑定代码? 你这个是从其它的UI框架(例如asp.net)套用来的习惯。 真正的做法,是不要去遍历控件的 Items,应该去访问你的数据源。再设计 UI 控件时,开发者保证它与数据源(例如实现了 ObservableCo 阅读全文
posted @ 2021-08-31 23:49 宏宇 阅读(868) 评论(0) 推荐(0) 编辑
摘要: windows10 下各浏览器userAgent版本号自行理解 8 -。- 浏览器userAgent Chrome Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396 阅读全文
posted @ 2021-08-27 17:42 宏宇 阅读(2322) 评论(0) 推荐(1) 编辑
摘要: string invalid = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars()); foreach (char c in invalid) { illegal = illegal. 阅读全文
posted @ 2021-08-23 19:15 宏宇 阅读(540) 评论(0) 推荐(0) 编辑
摘要: task好像没有在线程外取消任务的操作,没有类似于Thread.Abort();这样停止线程的操作,当然,也可以在task生成时,把task所属的线程记录下来,然后用Thread.Abort()停止,因为task本身也是附属与这个线程的,线程停了,task肯定也停了,不过这样那还不如直接用Threa 阅读全文
posted @ 2021-08-20 09:24 宏宇 阅读(1257) 评论(0) 推荐(0) 编辑
摘要: 在我们了解Task之前,如果我们要使用多核的功能可能就会自己来开线程,然而这种线程模型在.net 4.0之后被一种称为基于 “任务的编程模型”所冲击,因为task会比thread具有更小的性能开销,不过大家肯定会有疑惑,任务和线程到底有什么区别? 1:任务是架构在线程之上的,也就是说任务最终还是要抛 阅读全文
posted @ 2021-08-19 20:39 宏宇 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 区别在于Invoke是同步,BeginInvoke是异步。 打个比方(伪代码),后台线程中需要通知UI界面进行刷新 new Thread() { /* 比如读取数据库的方法,比较耗时; var data = GetData(); 读取完成后通知UI线程, this.Invoke(data); //如 阅读全文
posted @ 2021-08-18 22:41 宏宇 阅读(1311) 评论(0) 推荐(1) 编辑
摘要: 一、什么是异步 同步和异步主要用于修饰方法。当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法;当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务,调用者不用等待该方法执行完毕,我们称这个方法为异步方法。 异步的好处在于非阻塞(调用线程不会暂停执 阅读全文
posted @ 2021-08-18 19:12 宏宇 阅读(578) 评论(0) 推荐(0) 编辑
摘要: 普通的async await方法其实是一个同步的异步调用,此方式并不开启新的线程,只是一个多任务处理模式,只是主线程在运行时不会阻塞卡死。此方式只能调用异步方法。 (使用async和await定义异步方法不会创建新线程,所以使用Thread.Sleep(3000)主线程也会阻塞卡死) (由于不是开始 阅读全文
posted @ 2021-08-18 18:51 宏宇 阅读(3734) 评论(0) 推荐(0) 编辑
摘要: 本专题概要: 引言 同步代码存在的问题 传统的异步编程改善程序的响应 C# 5.0 提供的async和await使异步编程更简单 async和await关键字剖析 小结 一、引言 在之前的C#基础知识系列文章中只介绍了从C#1.0到C#4.0中主要的特性,然而.NET 4.5 的推出,对于C#又有了 阅读全文
posted @ 2021-08-18 16:56 宏宇 阅读(276) 评论(0) 推荐(0) 编辑
摘要: DataGrid 绑定 DataTable:界面: <Window x:Class="DataGridBindDataTable.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x 阅读全文
posted @ 2021-08-17 18:07 宏宇 阅读(1525) 评论(0) 推荐(0) 编辑
摘要: 第一步: 在 App.xaml 里,把 StartupUri=""去掉,改成 Startup="Application_Startup"第二步: 在 App.xaml.cs里,增加 Application_Startup 事件:private void Application_Startup(obj 阅读全文
posted @ 2021-08-17 09:48 宏宇 阅读(413) 评论(0) 推荐(0) 编辑
摘要: DataGrid绑定datatable时,Datagrid.Itemsource=dt.DefaultView;发现DataGRID会多处一行解决如下:对Datagrid的CanUserAddRows属性操作就可以了。<DataGrid CanUserAddRows="False"../>将CanU 阅读全文
posted @ 2021-08-16 18:13 宏宇 阅读(338) 评论(0) 推荐(0) 编辑
摘要: <DataGrid Name="DataGrid1" HorizontalAlignment="Left" Height="200" Margin="69,200,0,0" VerticalAlignment="Top" Width="500" AutoGenerateColumns="False" 阅读全文
posted @ 2021-08-16 17:33 宏宇 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 在开发软件过程中有一些客户要求要在表个里面添加一列“状态列”在这列里面添加有按钮,这些按钮有“删除、编辑、停用、启用、修改、详细内容等等”。开发人员为了瞒足看客户的需求从而开发表格里面添加按钮的需求,每一行的按钮只能对他所在的一行进行操作,不能操作别的行的内容。 下面的的代码是WPF XAML的表格 阅读全文
posted @ 2021-08-16 15:36 宏宇 阅读(668) 评论(0) 推荐(0) 编辑
摘要: 在使用DataGrid的过程中,我们有时候需要对选取的某一行数据进行多个操作,这个时候操作列只有一个按钮显然无法满足我们的要求,我们需要多个按钮才能达到我们的目的。 UI页面代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 阅读全文
posted @ 2021-08-16 15:09 宏宇 阅读(804) 评论(0) 推荐(0) 编辑
摘要: .Net的公用语言运行时(Common Language Runtime,CLR)能区分两种不同类型的线程:前台线程和后台线程。这两者的区别就是:应用程序必须运行完所有的前台线程才可以退出;而对于后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,所有的后台线程在应用程序退出时都会自动结束。 阅读全文
posted @ 2021-08-13 16:36 宏宇 阅读(277) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 108 下一页