JIT(Just-In-Time)编译器

在 .NET 中,JIT(Just-In-Time)编译器是一种将 MSIL(Microsoft Intermediate Language)代码转换为本机机器代码的动态编译器。 JIT 编译器在程序运行时将 MSIL 代码编译为本机代码,以便在计算机上运行。 JIT 编译器是 .NET 运行时的一部分,它负责将 MSIL 代码转换为本机代码。 当 .NET 应用程序启动时,CLR(Common Language Runtime)会将 MSIL 代码加载到内存中, 然后 JIT 编译器会将代码编译为本机代码,以便在计算机上运行。这个过程是在运行时动态进行的,因此称之为 JIT。 ...

2025年7月28日 · 1 分钟 · 400 字

JWT

JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在各方之间安全地传输信息。以下是关于JWT的关键信息: JWT基本概念 定义:JWT是一种基于JSON的开放标准,用于在各方之间安全地传输声明 用途:常用于身份验证和信息交换 结构:由三部分组成,用点(.)分隔 JWT的三个组成部分 Header(头部) ...

2025年7月28日 · 8 分钟 · 3589 字

.NET异步方法

Task.run和threadpool.QueueUserWorkItem Task.Run 和 ThreadPool.QueueUserWorkItem 都是在 .NET 中用于执行异步任务的方法,但它们之间有一些区别。 返回值类型不同:Task.Run 返回一个 Task 对象,而 ThreadPool.QueueUserWorkItem 没有返回值。 参数不同:Task.Run 接受一个 Func<Task> 或 Action 委托,而 ThreadPool.QueueUserWorkItem 接受一个 WaitCallback 委托。 线程池的使用方式不同:Task.Run 会使用线程池中的线程来执行任务,而 ThreadPool.QueueUserWorkItem 只能使用线程池中的线程来执行任务。 异常处理不同:Task.Run 可以通过 await 关键字或 Task.Wait 方法等方式来捕获任务中的异常,而 ThreadPool.QueueUserWorkItem 没有提供类似的机制,需要在任务中自行处理异常。 综上所述,Task.Run 更加灵活,可以更好地支持异步编程模式,而 ThreadPool.QueueUserWorkItem 更适合执行简单的后台任务。在一般情况下,建议使用 Task.Run 来执行异步任务。 ...

2025年7月28日 · 4 分钟 · 1587 字

自定义事件

以下是一个使用 Python 实现自定义事件的示例代码: import threading import time class CustomEvent: def __init__(self): self.handlers = set() def add_handler(self, handler): self.handlers.add(handler) def remove_handler(self, handler): self.handlers.remove(handler) def fire(self, *args, **kwargs): for handler in self.handlers: handler(*args, **kwargs) # 创建一个自定义事件 my_event = CustomEvent() # 定义一个事件处理函数 def on_my_event(message): print('Custom event received:', message) # 添加事件处理函数到事件处理程序列表 my_event.add_handler(on_my_event) # 触发自定义事件 my_event.fire('Hello, world!') # 等待一段时间,以便查看输出结果 time.sleep(1) 在这个示例中,我们首先定义了一个名为 CustomEvent 的自定义事件类,其中包含了添加、删除和触发事件处理程序的方法。接着,我们创建了一个 my_event 实例作为自定义事件,并定义了一个名为 on_my_event 的事件处理函数。然后,我们将 on_my_event 函数添加到 my_event 实例的事件处理程序列表中。最后,我们通过调用 my_event.fire 方法触发了自定义事件,并传递了一个消息作为参数。这将导致事件处理程序被调用并输出消息。 ...

2025年7月28日 · 2 分钟 · 583 字

vs2019离线安装包制作

vs2009脱机安装 执行layout.cmd,需要网络,如果已经下载localVSlayout,可以跳过这一步 执行cert.cmd,不需要网络. 执行setup.cmd,不需要网络. 脱机安装指引>https://docs.microsoft.com/en-us/visualstudio/install/create-an-offline-installation-of-visual-studio?view=vs-2019 可以参考1,3步命令下载安装其他组件 工作负载和组件id官网地址>https://docs.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-professional?view=vs-2019 ...

2025年7月24日 · 2 分钟 · 657 字

couchdb

CouchDB是一个开源的面向文档的数据库管理系统,建立于 C++ 之上。 ui http://192.168.200.16:5984/_utils/#/_all_dbs curl http://admin:admin@192.168.200.16:5984/_utils/#/_all_dbs curl -X PUT http://admin:admin@192.168.200.16:5984/test curl -X GET http://admin:admin@192.168.200.16:5984/test curl -X DELETE http://admin:admin@192.168.200.16:5984/test curl -X PUT http://admin:admin@192.168.200.16:5984/test/"002" -d "{\"Name\":\"Raju\",\"age\":\"23\"}" curl -X GET http://admin:admin@192.168.200.16:5984/test/"002" {"_id":"002","_rev":"1-d72ed8577c9b1547dec5052cd503b359","Name":"Raju","age":"23"} curl -X PUT http://admin:admin@192.168.200.16:5984/test/"002" -d "{\"Name\":\"Raju\",\"age\":\"24\",\"_rev\":\"1-d72ed8577c9b1547dec5052cd503b359\"}" curl -X GET http://admin:admin@192.168.200.16:5984/test/"002" {"_id":"002","_rev":"2-f2716b3df54d9bbbc7d9b4eafe965354","Name":"Raju","age":"24"} curl -X GET http://admin:admin@192.168.200.16:5984/test/"003" {"_id":"003","_rev":"1-d72ed8577c9b1547dec5052cd503b359","Name":"Raju","age":"23"} curl -X DELETE http://admin:admin@192.168.200.16:5984/test/"003"?rev=1-d72ed8577c9b1547dec5052cd503b359 curl -X GET http://admin:admin@192.168.200.16:5984/test/"003" {"error":"not_found","reason":"deleted"} 查询 ### ip192d168d129d162 POST http://192.168.200.16:5984/ip192d168d129d162/_find authorization: Basic YWRtaW46YWRtaW4= Content-Type: application/json { "selector": { "datetime": { "$gte": 20220517000000000 } }, "sort":[{"datetime":"desc"}], "bookmark":"", "limit": 1000, "fields": ["dateformat","data"], "execution_stats": true }

2025年7月24日 · 1 分钟 · 114 字

github-actions

GitHub Actions是GitHub平台提供的一种持续集成和持续部署(CI/CD)工具。它允许开发者在GitHub上自动化执行各种任务,如构建、测试、部署等。 使用GitHub Actions,您可以创建一个工作流程(Workflow),该工作流程由一个或多个任务(Job)组成,每个任务可以运行在不同的操作系统和环境中。每个任务又由一个或多个步骤(Step)组成,每个步骤可以运行一条或多条命令。 ...

2025年7月24日 · 2 分钟 · 540 字

jekyll-timezone

Jekyll的时区和时间 2019-12-02 07:00:00 +0800 | 建站 | Jekyll 时区 GitHub Pages 在填写博文Front Matter里的日期时间date变量时如果不带时区字段,一律视为UTC标准时+0000时区,如果要填写其他时区的时间必须指明时区,类似这样2019-12-02 07:00:00 +0800。在_config.yml设置修改timezone变量只关乎日期时间date的显示效果,而不影响真正的时间值。下面详述: ...

2025年7月24日 · 4 分钟 · 1811 字

WaitCallback

WaitCallback 委托一般用于将方法异步执行到线程池线程上。线程池是一组可重用的线程,可以在需要时分配线程来执行工作,而不需要创建新的线程。使用线程池可以避免频繁地创建和销毁线程,从而提高应用程序的性能和可伸缩性。 通常,您可以使用 ThreadPool.QueueUserWorkItem 方法将方法异步执行到线程池线程上,并使用 WaitCallback 委托来表示要执行的方法。在这种情况下,WaitCallback 委托的参数是一个 object 类型的对象,该对象可以包含要传递给方法的数据。 ...

2025年7月24日 · 1 分钟 · 283 字

yield

在 C# 中,yield 關鍵字用於定義一個迭代器方法(Iterator Method), 這個方法可以產生一個可枚舉的序列。當迭代器方法被調用時, 它不會立即執行方法體中的程式碼,而是返回一個 IEnumerator 對象。 當使用者對這個 IEnumerator 對象調用 MoveNext() 方法時,才會執行迭代器方法中的程式碼,並返回序列中的下一個元素。 ...

2025年7月24日 · 2 分钟 · 851 字