ми.
Коли я писав книгу Visual Basic Programmer's Guide to the Windows API, я виступав проти такого підходу до програмування. Я відчував, що взагалі безвідповідально включати в додаток код, який Ви не розумієте, і що реальне знання, яке так важко отримати, коштує витрачених зусиль.
Таким чином мої книги по API були розроблені, щоб забезпечити не швидкі відповіді і прості рішення, а щоб навчити використанню API до такої міри, що програмісти могли б інтелектуально правильно застосовувати навіть найбільш просунуті методи. Я застосував це той же самий підхід до моєї книзі Developing ActiveX Components, яка вимагає багато часу для обговорення принципів ActiveX, COM і об'єктно-орієнтованого програмування перед описом подробиць реалізації цієї технології.
Багато чого з моєї кар'єри на ниві Visual Basic і багато з діяльності у фірмі Desaware, засноване на навчанні Visual Basic програмістів просунутим методам. Читач, хто надихнув мене на написання цієї статті, критикуючи мене за стримування технології багатопоточності, пропустив точку.
Так, я навчаю і демонструю просунуті методи програмування - але я намагаюся ніколи не пропустити велику картинку. Просунуті методи, яким я навчаю, повинні бути несуперечливі з правилами і специфікаціями Windows. Вони повинні бути такими безпечними, наскільки це можливо. Вони повинні бути підтримуваними в кінцевому рахунку. Вони не повинні руйнуватися, коли змінюються Windows або Visual Basic. p> Я можу вимагати тільки часткового успіху, так як Microsoft може змінити правила ігри всякий раз, коли їм здасться, що це необхідно. Але я завжди пам'ятаю про цьому і пробую попереджати людей, коли я думаю, що можу проштовхнути обмеження.
Я сподіваюся, що наведене тут обговорення багатопотокового режиму показує небезпеки застосування "простих методів" без доброго розуміння основної технології.
Я не можу обіцяти, що використання apartment model версії CreateThread є абсолютно коректним, але моє розуміння проблеми і досвід показують, що це безпечно.
Можуть бути інші фактори, які я пропустив. OLE - дійсно складна річ і модулі OLE DLL і сам Visual Basic схильні до змін. Я тільки можу стверджувати, що найкраще з мого знання - код, який я тут показав, задовольняє правилами COM і що емпіричне доказ показує, що Visual Basic runtime 5 0's є достатньо безпечним для виконання фонового коду потоку в стандартному модулі.
Список літератури
Для підготовки даної роботи були використані матеріали з сайту