Git Product home page Git Product logo

comicrackce's People

Contributors

apiweb avatar maforget avatar totengeist avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

comicrackce's Issues

[Feature Request] Consider moving to the AnansiProject ComicInfo.xml schema

The subject says it all really. Hardly essential, but maybe an alternative export that can be chosen?
The major comic servers all support this (and are largely directly involved in it too), and it's just an enhancement of the original.

I know there are a few standards floating around, but this is the one that the server developers are getting behind, so might as well stick with the people making the servers!

https://anansi-project.github.io/docs/comicinfo/intro

"Show in List" Redirects Incorrectly

Describe the bug
When using "Show in List" on any comic file, it redirects to whatever the last "List" option is regardless of what is chosen.

Exact Steps to Reproduce
Steps to reproduce the behavior:

  1. Right click any comic file.
  2. Click on 'Show in List'
  3. Click any List option.
  4. Be redirected to whatever last List option is.

Screenshots
Attached short video clip. Can provide more if needed.

Version/Commit (check the about page, next to the version, for the string between brackets):

  • Version: 0.9.180
  • Commit: 44d1d2

Additional context
Not a big issue, just an inconvenience. The bug is there on current latest build "44d1d2" and whatever was the most recent one. Can't remember if it was there on earlier builds.

Recording.2024-02-20.192746.mp4

Updating Publisher.zip/Format.zip

Describe the bug
When updating the program in windows the installation overwrite publisher.zip

Could be posible to not ovewrite the files on this path "C:\Program Files\ComicRack Community Edition\Resources\Icons" if the files are newer?

I added a more complete publisher.zip if you want to update it.

Publishers.zip

What version of MariaDB is supported

I see in the log:
"CHANGE: Switched MySQl library to MySQLConnector for better speed & compatibility with MariaDB"

This mean i could use the last version of MariaDB?

add support for jxl images

would it be possible to add support for jxl images?
(for example: extracted contents of cbz file, encoded jpg files to jxl to save space, recompressed to cbz file)
and i want to view the file again: my only solution yet is using a browser that supports jxl with for example Web-Comic-Reader

Comic Vine Scraper window is too small and cannot be resized

Describe the bug
Comic Vine Scraper window is too small and cannot be resized

Exact Steps to Reproduce
Steps to reproduce the behavior:
Select a book from your library.
Right Click --> Info OR press CTRL i
Click Comic Vine Scraper from the bottom bar
Notice the window is too small and cannot be resized. Right clicking the title bar has the option to maximize but it is disabled as well.

Screenshots
Capture

Version/Commit (check the about page, next to the version, for the string between brackets):

Additional context
Comic Vine Scraper Script

  • Version: 1.0.101
  • Commit 725fe2d

Co-existance with OG ComicRack

Seems like both versions can't exist at the same time on a system. Even opening the OG .exe file directly from it's folder will launch the new CE version.

image

Logo publishers with special charaters in name not show.

Publisher logo images that have names with accents, accents, and umlauts are not displayed.

In my case i updated the publisher.zip with the logos of:

Éditions Glénat
Les Humanoïdes Associés
Denoël Graphic

But not logos show in Tiles-view.
Tested also in old comicrack and works fine.

Crash when the clipboard contains some objects.

Crash when checking the Clipboard if it contains any objects. It particularly easy to reproduce by copying code from Visual Studio and waiting a couple seconds while the application is Idle. It's a windows crash so no way for .NET to catch it. It just hard crashes the program.

The Event Viewer states:

Faulting application name: ComicRack.exe, version: 1.0.8782.5758, time stamp: 0x65a78bcd
Faulting module name: ucrtbase.dll, version: 10.0.22621.2506, time stamp: 0x097c794c
Exception code: 0xc0000409

Crash Dump
Crash Dump (2)
Screenshot 2024-01-15 231930
Crash dnLIb Clipboard GetDataObject

Code Location:

commands.Add(PasteList, () => (Clipboard.ContainsData("ComicList") || Clipboard.ContainsText()) && ComicEditMode.CanEditList(), miPasteList);

commands.Add(PasteComicData, () => ComicEditMode.CanEditProperties() && Clipboard.ContainsData("ComicBook") && !GetBookList(ComicBookFilterType.Selected).IsEmpty(), miPasteData);

Open in external comic viewer

I'm not a huge fan of the CR comic viewer. Would it be possible to add an option to open a comic in an external viewer?

Windows Defender finds Malware Trojan:Script/Wacatac.B!ml and keeps deleting Comicrack.exe

I know we had the same Problem with the OG CR. But I never had it that it keeps deleting the exe no matter what. Interestingly it did not say anything for the 4 days I used it prior. It just started doing this today. If it would be rght after a big update I could understand it more (had a Windows Udate 3 days ago).

So can we do anything except sendind the exe to MS for false positive?

Merge page from the pages windows

Adding an option to merge/split pages from the pages window. Or probably just a setting like Page Type => Deleted that would be done on Export.

Tags textbox are still disabled when multiple books is selected.

Thank you very much for fixing that old annoying issue, that the tags someone adds to a comic or series never were stored in the comicinfo.xml files.

Though, this is still only less than half the mileage to go. So far, storing the tags only works for files which have been already added to the library. It does not work for files which you access through the file browser tab. You can add them (though the field is grayed out, but the dialog still opens up), but they are not stored permanently, and especially they are not exportted to comicinfo.xml then.
It took a while for me to recognize this.

I'd really appreciate if tagging would work absolutely the same way as adding genres, because right now it is a nuisance in my workflow.
When I get new comics or mangas, I store them on the local SSD of the notebook first, to add info by comicvine scraper and manually. Only when there is already some good comicinfo.xml in each file, it will be stored at its final location on my NAS, where a Komga server instance then picks the stuff up.
If I always have to move the files first prior to adding the tags, this is slowing down the workflow significantly, especially when connected by WIFI, not by LAN. With bad timing, it can even happen that the Komga server has to swallow the new stuff twice, due to its feature to automatically grab new directories every x hours.

#enhancement Add Main Series Format icon

Hopefully this will be straightforward.

In Format.zip rename series.png to series#Main Series.png to have it show up as Icon for Main Series Format. This is the only format without an icon.

Re-export a comic with WEBP images, changes the images to JPEG

Describe the bug
When you have a comic that contains WEBP pages, and you export it again, selecting WEBP as the format, the WEBP pages gets converted to JPEG pages although the file extension remains WEBP.

Exact Steps to Reproduce
Steps to reproduce the behavior:

  1. Select a comic that has JPEG pages
  2. Right Click on a Comic
  3. Select Export Books/Export Books
  4. Scroll down Page Format and select WEBP as format.
    image
  5. The pages are not WEBP format.
  6. Repeat Steps 2 to 4 again, and the pages will be converted to JPEG, although the filenames remain the same.

Ideal outcome, when you re-export and the files are already WEBP, it should just not do anything with the files. At the moment it converts them to JPEG, but keeps the extension as WEBP. Subsequen re-exports with WEBP format just keeps the same JPEG file, so the same should really apply for WEBP. I suspect that what happens with WEPB will happen with the DJVU image format as well, but I haven't tried that as such.

Screenshots

  • Test CBZ with JPEG image:
    image
    image

  • Test CBZ after conversion to WEBP:
    image
    image

  • Test CBZ after re-conversion with WEBP as format:
    image
    image

Version/Commit (check the about page, next to the version, for the string between brackets):

Additional context
I've traced the issue down to this specific function in the ComicRackCE\ComicRack.Engine\IO\Provider\ImageProvider.cs file. It converts WEBP images to JPEG, stores the JPEG data then. I haven't had time to really get my head around the code yet to see how to fix it, if I ever get time in the near future I'll give it a stab.

image

Test Files.zip

Damaged/malformed XML contents flushed by CR w/o notice

Describe the bug
Currently if XML deserialization fails, CR will attempt to re-popoulate metadata from the file-name alone.
Since this counts as "new" metadata the ComicInfo is marked as dirty.
Depending on settings, the User can then commit this to the file w/o being aware of the potential data-loss.

Exact Steps to Reproduce

  1. I open a CBZ file in 7-zip and edit it's ComicInfo.xml
    • I rename an opening or closing tag
    • E.g. <Writer> ... <Writer> ==> <Writer> ... <Write>
  2. In CR I open the file and check the "Info" tab and can confirm no metadata is there (only stuff guessed from file-name).
  3. I save the data to file in some fashion
  4. I open the CBZ file with 7-zip and check the ComicInfo.xml - it only has data gleamed from the filename

Version/Commit (check the about page, next to the version, for the string between brackets):

Additional context
The User should be made explicitly aware of XML parsing issues.
I propose the following behavior:

  • If deserialization fails, meta-data controls should be greyed out
    (Maybe add an icon or another indicator for XML issue)
  • When the User pushes Apply start Dialog:
    • Warning: Parsing ComicInfo.xml failed. If you commit your changes, CR will discard all data in the file.
    • Yes/No
    • Tickbox: always discard

Library Organizer: Greyed Out Options for "Custom"

When opening the Library Organizer (v2.1.13), on both the "Files" and "Folders" options, the "Custom" selection at the bottom is greyed out. I checked the preferences to make sure that "Show Custom Book Fields" in the "Behavior" section is checked as enabled.
Library Organizer - Files View
Library Organizer - Folders View
Preferences

Stacking Glitch

This is a long-standing CR bug for me. I have a smart list that is stacked by Series Group but this is reproducible by stacking other fields like Published or Pages. If I open a stack and then click away to another smart list and then back to the original list the stack only shows one book. I have to close the stack and re-open it.

Here is my smart list, stacked by Series Group:
image

Here is the opened AVP stack:
image

Here is the AVP stack after clicking away to another smart list and then returning to the first list:
image

In addition to only showing one book it also loses the view settings for inside the stack. Closing the stack and re-opening returns the full results and the correct view.

Sometimes you have to open/close a stack twice or click away and back to the smart list twice to trigger it. Once it happens it is easily reproducible, though. It may not happen with all groupings in the smart list, however. Ones that group lots of books or books across different series seem to be a sure bet.

Maincharacterorteam and Review aren't exported to comicinfo.xml

Describe the bug
These fields are saved to the database but not exported into comicinfo.xml

Exact Steps to Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Screenshots
If applicable, add screenshots to help explain your problem.

Version/Commit (check the about page, next to the version, for the string between brackets):

Additional context
Add any other context about the problem here.

Better Software filtering

https://github.com/maforget/ComicRackCE/assets/5938853/7788d7cd-34b9-4f1a-ab6e-745245852665
(view in full-screen to see the issue more clearly)

I've noticed an issue where a gray vertical line appears between two pages when they are displayed together. This line, while not a problem for most comics, disrupts the flow of artwork in two-page spreads. In the original comics, these spreads are seamless, but the gray line creates an artificial and distracting division. I've attached a video to demonstrate how this affects the reading experience, especially in digital formats where such separation is not present, unlike the physical versions. It would be great to have an option to disable this line for a more immersive reading experience.

Dark Theme

Here is a placeholder for work on a Dark Theme.

Is it even possible with Winforms?

seeding comics and sharing them on DC++

as you know you can't edit files that you are seeding and if you share edited files on DC++ you will get banned, so does ComicRackCE edit the/add ComicInfo.xml file?

as far as i know kavita/komf does have two options store the metadata in a database or ComicInfo.xml file, it will be nice if ComicRackCE does have that too

performance issue

Describe the bug
ComicRackCE become unresponsive for few minutes

Exact Steps to Reproduce
Steps to reproduce the behavior:

  1. add a reading list
  2. select a large number of comics (about 1993 in this case)

Screenshots
Taskmgr_pJubc1XfWi

Version/Commit (check the about page, next to the version, for the string between brackets):

Additional context
when selecting a fewer number (300) it become unresponsive only for few seconds

Option: Book files are updated automatically --> Superfluous "update non-DB files" dialog

Describe the bug
When the option Book files are updated automatically is enabled, all changes are automatically committed to the files.
Thus the Updates non-DB files Dialog is superfluous as changes are already committed.
Worse, it may mislead the User, giving the impression that the option normally doesn't affect Non-DB files.

This behavior was discovered while investigating XML deserializaiton issues.
If deserializaiton fails, ComicInfo is marked as dirty.
Together with the option above CR will flush the ComicInfo.xml.
Behaviour was triggered by intentionally mangling XML opening/closing tags so they're unpaired to check error handling.

CR will always updates malformed ComicInfo.xml, even if the user chooses not update files outside the DB.

Exact Steps to Reproduce

  1. Enabled option: Book files are updated automatically
  2. Make changes to Non-DB files
  3. (Optional - check with 7-zip that ComicInfo.xml is updated whenever a file's ComicInfo is marked dirty - whether in-/non-DB)
  4. Close CR, answer Updates non-DB files Dialog Yes or No
  5. Check with 7-zip that ComicInfo.xml was already updated earlier (older time-stamp) regardless Dialog choice

Version/Commit (check the about page, next to the version, for the string between brackets):

Blank pages not showing up

I have a comic that has two blank pages, which are necessary to keep pages on the correct side in two-page mode. They are no longer displayed or listed in the page listing.

Drag & drop in folder treeview form

Do you think it could be a good idea to drag and drop folders in the treeview of the folder view, instead of go out to explorer, move folders and then reload the library ?

Verify ParallelConversions change

Hello,

could someone verify if the ParallelConversions modification has had any effect?

I have been trying every nightly release of the CE edition, and a few days ago I noticed the ParallelConversions in the changelog.

I did some tests converting big files and monitoring my cpu usage and I can confirm that all cores showed an increased usage, and a big speed increase in the conversions as well.

However, I tried to repeat the test yesterday and the CPU's didn't show more than 7 cores being used, and the speed was the usual. I did not keep a copy of the version when I first tested it (my fault), so could someone else verify if they notice any changes?

Virtual Fields

This is something I feel would be a great feature and always thought would be needed. Something like MusicBee Virtual Tags or Calibre Template, Where existing tags could be used to create another tags. It would also need functions (like right, left, mid, substring, etc.) to be added to be useful.

It needs to be be accessible throughout the application, like in grouping, sorting, smart lists, etc.

Docker Support

A few months ago this was posted on the subreddit: https://github.com/pezhore/comicrack-docker It doesn't look like pezhore has done anything with it since.

It would be interesting if we could integrate something like this with the CE edition, it might actually be easier since it would have better support for mariadb and other options. I think ideally we could just use a dotnet implementation instead of WINE, but I think that might require a substantial amount of work (replacing the plugin system, replacing the UI with an electron UI or making a "headless" version that could be managed by a remote CE application).

Page Turn Effect doesn't take into account right-to-left reading mode

Describe the bug

When using right-to-left reading mode with Page Turn Effect enabled, the page turning animation still behaves as if I'm reading a left-to-right book instead of being flipped to match the reading direction as one would expect; this is very disorienting and affects readability for manga and other right-to-left comics.

Exact Steps to Reproduce
Steps to reproduce the behavior:

  1. Enable Page Turn Effect under Book Display Settings
  2. Open a book meant to be read right-to-left
  3. Enable Right-to-Left Reading
  4. Turn the page of the book

Version/Commit (check the about page, next to the version, for the string between brackets):

Library Sharing is broken

It seems to work when connecting to OG.

OG can connect to OG
CE can connect to OG
CE cannot connect to CE
OG cannot connect to CE,

It crashes

System.ServiceModel.Security.SecurityNegotiationException
  HResult=0x80131501
  Message=SOAP security negotiation with 'net.tcp://10.0.10.25:7612/Share/Library' for target 'net.tcp://10.0.10.25:7612/Share/Library' failed. See inner exception for more details.
  Source=mscorlib
  StackTrace:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at cYo.Projects.ComicRack.Engine.IO.Network.IRemoteComicLibrary.get_IsValid()
   at cYo.Projects.ComicRack.Engine.IO.Network.ComicLibraryClient.Connect() in ComicLibraryClient.cs:line 81

  This exception was originally thrown at this call stack:
    [External Code]

Inner Exception 1:
Win32Exception: The token supplied to the function is invalid
{System.ServiceModel.Security.SecurityNegotiationException: SOAP security negotiation with 'net.tcp://10.0.10.25:7612/Share/Library' for target 'net.tcp://10.0.10.25:7612/Share/Library' failed. See inner exception for more details. ---> System.ComponentModel.Win32Exception: The token supplied to the function is invalid
   at System.ServiceModel.Security.TlsSspiNegotiation.GetOutgoingBlob(Byte[] incomingBlob, ChannelBinding channelbinding, ExtendedProtectionPolicy protectionPolicy)
   at System.ServiceModel.Security.SspiNegotiationTokenProvider.GetNextOutgoingMessageBody(Message incomingMessage, SspiNegotiationTokenProviderState sspiState)
   at System.ServiceModel.Security.IssuanceTokenProviderBase`1.GetNextOutgoingMessage(Message incomingMessage, T negotiationState)
   at System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation(TimeSpan timeout)
   --- End of inner exception stack trace ---
   at System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation(TimeSpan timeout)
   at System.ServiceModel.Security.SspiNegotiationTokenProvider.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Security.TlsnegoTokenProvider.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Security.CommunicationObjectSecurityTokenProvider.Open(TimeSpan timeout)
   at System.ServiceModel.Security.SecurityUtils.OpenCommunicationObject(ICommunicationObject obj, TimeSpan timeout)
   at System.ServiceModel.Security.SecurityUtils.OpenTokenProviderIfRequired(SecurityTokenProvider tokenProvider, TimeSpan timeout)
   at System.ServiceModel.Security.SymmetricSecurityProtocol.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Security.SecurityProtocol.Open(TimeSpan timeout)
   at System.ServiceModel.Channels.SecurityChannelFactory`1.ClientSecurityChannel`1.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Security.SecuritySessionSecurityTokenProvider.DoOperation(SecuritySessionOperation operation, EndpointAddress target, Uri via, SecurityToken currentToken, TimeSpan timeout)
   at System.ServiceModel.Security.SecuritySessionSecurityTokenProvider.GetTokenCore(TimeSpan timeout)
   at System.IdentityModel.Selectors.SecurityTokenProvider.GetToken(TimeSpan timeout)
   at System.ServiceModel.Security.SecuritySessionClientSettings`1.ClientSecuritySessionChannel.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.Call(ServiceChannel channel, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan timeout, CallOnceManager cascade)
   at System.ServiceModel.Channels.ServiceChannel.EnsureOpened(TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)}

Can be bypassed by setting the CreateChannel(secure: false) for the Library endpoint, but that disables Passwords.

Something to do with the certificate. Either it's too old and the algo isn't supported anymore or it's encrypted via a private key. Maybe try to generate a new Certificate and have both Certificate in the new version. 1 for compatibility with the OG, another for the CE.

HW Accel

Opening an issue here for this subject.
Looking at the code for the opengl, CR uses an outdated version of the Tao Framework opengl library. What do you guys think about using OpenTK instead?

https://github.com/opentk/opentk

Remember position for script output window

Describe the bug
I run CR(CE) with the flags -dso -ssc to enable script output and any script debugging I might do. Everytime I move the window CR doesn't remember the new position when I open CR the next time. Please make this window remember position if possible. Thank you

Portable not working

Cannot have a portable installation working.
If you uncomment "UseLocalSettings = true" row in file "ComicRack.ini" result is application not anymore starting.

New Plugin System

We need to replace the existing obsolete IronPython Plugin system. I would keep it as is for Legacy purpose, but create a new system that would live alongside the IronPython one.

P.S. The Current 2.7.4 version of IronPython that is installed seems to be the last one that will work with existing plugins. There is a version (at this time 3.4.1, updated in July 2023 that might be an idea).

But I believe the easiest is just to do a plugin system using .NET. Having dll in the folder instead. All they would need is probably just an Interface that they would need to implement that would serve as an entry point. Would we need to have various types for the different Hook that current plugin permits? Or maybe use Attributes to specify the Hook Types?

Could we also use something like HarmonyLib to give plugins an even bigger access to the entire code, to be able to be changed on the fly.

Problems with metadata copy and CTRL+C and CTRL+V

Don't know if it is my Surface but strangely I can not copy the metadata with the keyboard combination. Only with right click and the commands there. Thought at first it was because the cursor was not above the cbz but this was not the case.

Can anyone test if they have the same problem? It did work for me for the version 1-1.5 weeks ago.

Errors - every day for last 5 days... can't get app to stay open...

Describe the bug
Was on a list filter screen... not sure what happened as the app just suddenly gave me the error dialogue.

Version/Commit (check the about page, next to the version, for the string between brackets):

  • Version: latest, literally just installed nightly version hoping it would clear up the issue.

Additional context
There's no clear "submit" option on the error message so here is the text from the error. (would be nice to know which of the error message options actually sends the error message automatically - restart, exit, etc...)

Stack Trace

Application: ComicRack Community Edition
Version    : 0.9.180
Assembly   : 1.0.8834.11949
OS         : Microsoft Windows NT 6.2.9200.0 64
.NET       : 4.0.30319.42000
Processors : 24
Workingset : 849.94 MB
DOMAINEXCEPTION
--------------------
PathTooLongException
System.String NewNormalizePathLimitedChecks(System.String, Int32, Boolean)
The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Save Database Queue: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
GUI Thread: Running ()
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Overlay Animation Thread: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Background Fast Page Queue: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Background Slow Page Queue #1: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Background Slow Page Queue #2: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Background Slow Page Queue #3: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Background Slow Page Queue #4: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Background Fast Thumbnails Queue: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Background Slow Thumbnails Queue #1: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Background Slow Thumbnails Queue #2: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Background Slow Thumbnails Queue #3: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Background Slow Thumbnails Queue #4: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Update Dynamic Books: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Export Books: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Read Book File Information: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Write Book File Information: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Synchronizing Devices: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Overlay Animation Thread: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Overlay Animation Thread: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Book Scanner: Background (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Free Image Memory: Background, WaitSleepJoin (B)
   at cYo.Common.Threading.ThreadUtility.DumpThread(TextWriter tw, Thread t)
   at cYo.Common.Threading.ThreadUtility.DumpStacks(TextWriter tw)
   at cYo.Projects.ComicRack.Viewer.Dialogs.CrashDialog.OnBark(Object sender, BarkEventArgs e)
   at cYo.Common.Runtime.CrashWatchDog.OnBark(BarkType bark, Exception e)
   at System.IO.Path.NewNormalizePathLimitedChecks(String path, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetPathRoot(String path)
   at cYo.Common.IO.DriveChecker.IsConnected(String path)
   at cYo.Projects.ComicRack.Engine.ComicScanner.ScanFolderQueue()
   at cYo.Common.Threading.ThreadUtility.<>c__DisplayClass14_0.<CreateWorkerThread>b__0()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------------
Report generated at: 3/9/2024 8:34:40 PM

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.