修复打开图片线程BUG

This commit is contained in:
gb 2024-02-28 17:51:20 +08:00
parent 87d975f523
commit cc8dd9085c
2 changed files with 14 additions and 1 deletions

View File

@ -32,6 +32,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_TWAIN_App", "..\..\doc
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "saneui", "..\..\doc_and_tools\tools\apps\saneui\saneui.vcxproj", "{9C925903-62C0-4517-B435-93F6291E2D27}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "saneui", "..\..\doc_and_tools\tools\apps\saneui\saneui.vcxproj", "{9C925903-62C0-4517-B435-93F6291E2D27}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pic_viewer", "..\..\doc_and_tools\tools\apps\pic_viewer\pic_viewer.vcxproj", "{8C3DEF78-4DF1-4C26-A11E-7031FF77391C}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64 Debug|x64 = Debug|x64
@ -102,6 +104,14 @@ Global
{9C925903-62C0-4517-B435-93F6291E2D27}.Release|x64.Build.0 = Release|x64 {9C925903-62C0-4517-B435-93F6291E2D27}.Release|x64.Build.0 = Release|x64
{9C925903-62C0-4517-B435-93F6291E2D27}.Release|x86.ActiveCfg = Release|Win32 {9C925903-62C0-4517-B435-93F6291E2D27}.Release|x86.ActiveCfg = Release|Win32
{9C925903-62C0-4517-B435-93F6291E2D27}.Release|x86.Build.0 = Release|Win32 {9C925903-62C0-4517-B435-93F6291E2D27}.Release|x86.Build.0 = Release|Win32
{8C3DEF78-4DF1-4C26-A11E-7031FF77391C}.Debug|x64.ActiveCfg = Debug|x64
{8C3DEF78-4DF1-4C26-A11E-7031FF77391C}.Debug|x64.Build.0 = Debug|x64
{8C3DEF78-4DF1-4C26-A11E-7031FF77391C}.Debug|x86.ActiveCfg = Debug|Win32
{8C3DEF78-4DF1-4C26-A11E-7031FF77391C}.Debug|x86.Build.0 = Debug|Win32
{8C3DEF78-4DF1-4C26-A11E-7031FF77391C}.Release|x64.ActiveCfg = Release|x64
{8C3DEF78-4DF1-4C26-A11E-7031FF77391C}.Release|x64.Build.0 = Release|x64
{8C3DEF78-4DF1-4C26-A11E-7031FF77391C}.Release|x86.ActiveCfg = Release|Win32
{8C3DEF78-4DF1-4C26-A11E-7031FF77391C}.Release|x86.Build.0 = Release|Win32
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -115,6 +125,7 @@ Global
{4C912767-88BE-463E-BFFC-AF994A92E425} = {53E5EDD9-13BA-4F3C-A387-C73CB06C686D} {4C912767-88BE-463E-BFFC-AF994A92E425} = {53E5EDD9-13BA-4F3C-A387-C73CB06C686D}
{8C3DEF78-4DF1-4C26-A11E-7031FF773E7D} = {53E5EDD9-13BA-4F3C-A387-C73CB06C686D} {8C3DEF78-4DF1-4C26-A11E-7031FF773E7D} = {53E5EDD9-13BA-4F3C-A387-C73CB06C686D}
{9C925903-62C0-4517-B435-93F6291E2D27} = {53E5EDD9-13BA-4F3C-A387-C73CB06C686D} {9C925903-62C0-4517-B435-93F6291E2D27} = {53E5EDD9-13BA-4F3C-A387-C73CB06C686D}
{8C3DEF78-4DF1-4C26-A11E-7031FF77391C} = {53E5EDD9-13BA-4F3C-A387-C73CB06C686D}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {A89068FF-95C4-3C1E-B126-70B66C9824BB} SolutionGuid = {A89068FF-95C4-3C1E-B126-70B66C9824BB}

View File

@ -722,12 +722,13 @@ static DWORD thread_open_id_ = 0;
static safe_fifo<std::wstring> images_("images"); static safe_fifo<std::wstring> images_("images");
static DWORD WINAPI thread_open_image(void* lp) static DWORD WINAPI thread_open_image(void* lp)
{ {
thread_open_id_ = GetCurrentThreadId();
while (1) while (1)
{ {
std::wstring file(L""); std::wstring file(L"");
if (images_.take(file, true)) if (images_.take(file, true))
ShellExecuteW(NULL, L"Open", file.c_str(), NULL, NULL, SW_SHOWNORMAL); ShellExecuteW(NULL, L"Open", file.c_str(), NULL, NULL, SW_SHOWNORMAL);
else else if(thread_open_id_ == 0)
break; break;
} }
return 0; return 0;
@ -781,6 +782,7 @@ CDlgScanner::CDlgScanner(CWnd* pParent /*=nullptr*/)
CDlgScanner::~CDlgScanner() CDlgScanner::~CDlgScanner()
{ {
::PostThreadMessage(thread_open_id_, WM_USER + 1001, 0, 0); ::PostThreadMessage(thread_open_id_, WM_USER + 1001, 0, 0);
thread_open_id_ = 0;
images_.trigger(); images_.trigger();
if (scanner_) if (scanner_)
{ {