我們在寫 ASP.NET (.NET Framework) 的時候,可能會需要利用非同步作業在背景執行一些工作,同時可能也需要偶爾取用 HttpContext
相關資訊。事實上當我們在 ASP.NET (.NET Framework) 使用 await
等待一個 Task 時,會自動紀錄當下的 SynchronizationContext
,並在 Task 完成工作後,取得原始 執行緒 (Thread) 中的資訊。但是如果我們也想在 Task 中取用原本執行緒的內容 (例如 HttpContext
資訊),我們就需要學會如何自行利用 SynchronizationContext
來取用原始執行緒中的內容。今天這篇文章,我將透過一段簡易的程式碼與一個實際應用情境,說明 SynchronizationContext
的運作方式,讓你知道如何正確的使用它。
... 繼續閱讀 ...
我今天在「C# 開發實戰:非同步程式開發技巧」課程中有學員提問,如何偵測用戶端已斷線並自動取消非同步方法執行。事實上 ASP.NET (.NET Framework) 與 ASP.NET Core 的實作方式相當類似,今天這篇文章我就來分享 ASP.NET Core 的實作方式,幫助你有效偵測用戶端已斷線,並自動取消非同步方法執行。
... 繼續閱讀 ...
Apache Maven 有個 site 生命週期,定義出你要建立專案文件站台所需的各種階段,並讓你透過瀏覽器查看 Java 專案的完整資訊,相當方便。不過我透過 Spring Initializr 建立的專案,預設卻無法產生網站(site),錯誤訊息也有點奇怪,逼的我還要去研究 Maven 才終於理解錯誤的原因。這篇文章我就來交代整個過程,以及解決方案。
... 繼續閱讀 ...
使用 Visual Studio Code 開發 Spring Boot 的時候,我們在 application.yml
檔案中會放入一些環境變數,每次啟動應用程式的時候都要手動設定環境變數才能正常啟動,使用上比較不方便。本篇文章我將說明如何設定 Visual Studio Code 在啟動 Spring Boot 應用程式時,可以自動載入 .env
檔案,讓應用程式啟動時可以自動載入環境變數,增加開發的方便性。
... 繼續閱讀 ...
最近已經把 Java in Visual Studio Code 摸索到一定程度,但是獨缺 Test Coverage Report 報告可看。這篇文章我打算分享如何在專案中加入 JaCoCo Java Code Coverage Library,並透過微軟最新推出的 Live Preview 這個 VSCode 擴充套件查看報告。
... 繼續閱讀 ...
對於 WSL (Windows Subsystem for Linux) 一直無法處理 Big5 字元這件事,對我來說就像在一片白牆上的一個污點,明知這面白牆很漂亮,但就是無法不注意牆上的那個污點,一直覺得不完美,直到昨天都還是解決不了。睡一覺之後,想到了一個新的關鍵字,找到了一個 luit 工具,這就是我昨天一直想要找到的工具!
... 繼續閱讀 ...
我每隔幾年我就會遇到一次 non-Unicode 的編碼問題,真的不常見,但這些年來也處理過無數次了,每次都被搞的很煩。最近在 Linux 環境又遇到棘手的編碼問題,檔案內容是從 ISO-8859-1
(Latin-1) 字集的 Sybase ASE 資料庫轉出,所以編碼是 ISO-8859-1
字集,但內容其實是 BIG5
字集,而我用 Windows Terminal + WSL 2 又只支援顯示 Unicode
字集的文字,所以文字無法正常在螢幕上顯示或複製。幾經嘗試後,我決定把這幾年累積的心得都寫下來,以免日後又要再花時間研究一次。
... 繼續閱讀 ...
最近公司越來越多 Java 專案,這陣子使用 Visual Studio Code 來開發 Java 應用程式小有心得。這篇文章我打算來介紹如何快速建立 Java 的開發環境,並介紹如何在 Visual Studio Code 開發工具下進行設定,讓你順利的開發出第一個 Spring Boot 應用程式,從開新專案到封裝部署,真的就簡單幾個步驟而已,開發體驗還算不錯。
... 繼續閱讀 ...
前陣子我需要安裝一台 Sybase ASE 資料庫到 Linux 主機,當我拿到安裝檔的時候,其實是一個 Google Drive 共用的連結,檔案大小有 1.4GB 左右,我不想先下載到我的 Windows 主機再上傳到 Linux 主機,我想直接從 Linux 主機下載該檔案。上網找了許多解決方案,但是這些作法幾乎都已經失效,最後還是自己研究出了一個很棒的方法,有需要的人請繼續看下去。
... 繼續閱讀 ...